2017-01-10 17 views
7

में फ़ैक्सटाइम एचडी कैमरा पर मैन्युअल रूप से एक्सपोजर कैसे सेट करें, मैं पाइथन में लिख रहे opencv प्रोग्राम में अपने फ़ैसटाइम एचडी कैमरे के लिए मैन्युअल रूप से एक्सपोजर सेट करने का तरीका समझ रहा हूं। मैं opencv संस्करण 3.2.0, पायथन 2.7 का उपयोग कर रहा हूं, और ओएसएक्स एल कैपिटन पर चल रहा हूं।पाइथन ओपनसीवी 3.2.0 ओएसएक्स एल कैपिटन

मैं एक प्रोग्राम लिख रहा हूं जो हर एन सेकंड में वेबकैम से एक तस्वीर लेगा और इसे डिस्क पर लिख देगा। प्रलेखन में मैंने जो देखा है, उससे मैं अपने कैमरे पर एक्सपोजर सेट करने के लिए इस विधि का उपयोग करना चाहता हूं।

cv2.VideoCapture.set(CV_CAP_PROP_EXPOSURE, value) → retval

कुछ फेरबदल के बाद और ऑनलाइन चारों ओर देख, मैंने पाया मैं opencv की मेरी संस्करण में कि कैमरे संपत्ति का उपयोग करने के लिए उपयोग निम्नलिखित में सक्षम था:

cv2.CAP_PROP_EXPOSURE

क्या अजीब बात है, है कि वास्तव में फोटोग्राफ को कैप्चर करने वाले मेरे फ़ंक्शन में, मैं देख सकता हूं कि डिफ़ॉल्ट एक्सपोजर मान 0.0 है, और फिर जब मैं इसे सेट विधि के साथ बदलने के लिए जाता हूं, तो जब मैं मान को फिर से चेक करता हूं तो एक्सपोजर नहीं बदला जाता है। ऐसा लगता है कि सेट विधि बस काम नहीं कर रही है।

def takePhoto(): 
    cam = cv2.VideoCapture(0) 
    print(cam.get(cv2.CAP_PROP_EXPOSURE)) #this prints out 0.0 
    cam.set(cv2.CAP_PROP_EXPOSURE, 0.5) 
    print(cam.get(cv2.CAP_PROP_EXPOSURE)) #this also prints out 0.0, despite the use of set() in the line above 
    s, im = cam.read() # captures image 
    cv2.imwrite("test.jpg",im) # writes image test.jpg to disk 
    cam.release() 

यह सिर्फ मामले कि इस कैमरे के मैनुअल जोखिम नियंत्रण के साथ संगत नहीं है:

यहाँ मेरी समारोह है? मैंने ओएसएक्स में opencv में एक या दो स्थानों में भी पढ़ा है जो कैमरे के गुणों को मैन्युअल रूप से नियंत्रित करने की अनुमति नहीं देता है। क्या यह गलत है? या मैं अनुचित तरीके से सेट विधि का उपयोग कर रहा हूँ? मुझे वास्तव में एक्सपोजर को मैन्युअल रूप से नियंत्रित करने में सक्षम होना चाहिए, क्योंकि मेरे प्रोग्राम द्वारा ली गई तस्वीरों को निरंतर अपरिवर्तित किया जाता है।

धन्यवाद, ब्रायन

उत्तर

0

मैं एक FacetimeHD कैमरा नहीं है, लेकिन मैं तुम्हें (ऑटो जोखिम को निष्क्रिय) के मैनुअल के लिए जोखिम मोड सेट करने का उपयोग कर की जरूरत है लगता है

cam.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0)

संबंधित मुद्दे