2010-11-25 9 views
7

तो मुझे कैप्चर डिवाइस सूची की तरह कुछ चाहिए।उपयोगकर्ता को ओपनसीवी के साथ एक वीडियो रिकॉर्डिंग डिवाइस (वेब-कैमरा) चुनने दें कैसे?

और कुछ फ़ंक्शन उपयोगकर्ता से प्राप्त करने के लिए जिस डिवाइस पर वह स्ट्रीम करना चाहता है।

Win32 C++ कंसोल एप्लिकेशन में openCV के साथ ऐसी चीज कैसे करें?

उत्तर

1

वेबकैम की गणना करने के लिए कुछ ओएस फ़ंक्शंस का उपयोग करने का प्रयास करें। इसमें कुछ काम हो सकता है, लेकिन यह दृष्टिकोण गारंटी देगा कि आपको हर बार एक सूची मिलती है (ओपनसीवी हैक के विपरीत, जो कभी-कभी काम नहीं करता है, किसी कारण से)।

5

कोशिश के रूप में मार्टिन ने कहा कि यह OpenCV में समर्थित नहीं है, लेकिन आप एक छोटे चाल इस्तेमाल कर सकते हैं। यदि यह आपकी ज़रूरतों को पूरा करता है, तो आप cvCreateCameraCapture() पर कॉल करके कैमरे की संख्या को लगातार गणना करके कैमरे की संख्या का पता लगा सकते हैं जब तक कि यह शून्य न हो जाए।

Sth इस तरह:

CvCapture *cap; 
int n = 0; 
while(1) 
{ 
    cap = cvCreateCameraCapture(n++); 
    if (cap == NULL) break; 
    cvReleaseCapture(&cap); 
} 

cvReleaseCapture(&cap); 
return n-1; 

अब आप तो आप अपने उपयोगकर्ता अर्थात सूची बॉक्स के अपने सूचकांक से किसी एक का चयन करने के लिए दे सकते हैं कैमरा उपकरणों की एक संख्या है।

नुकसान यह है कि ओपनसीवी आपको डिवाइस के नाम के बारे में कोई जानकारी नहीं देता है, इसलिए यदि आप इसे पूरा करना चाहते हैं तो आपको माइक्रोसॉफ्ट डायरेक्टशो या पुस्तकालय मार्टिन प्रस्तावित करना चाहिए।

+1

मेरे कंप्यूटर पर, यह डिफ़ॉल्ट कैमरा देता है इससे कोई फर्क नहीं पड़ता कि मैं कौन सा इंडेक्स डाल रहा हूं, हालांकि मैं केवल 2 से जुड़ा हुआ हूं। – xandy

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

  • कोई संबंधित समस्या नहीं^_^