वहां
opencv
(OpenCV लोगों से पुस्तकालय),cv
(OpenCV लोगों से पुरानी लाइब्रेरी) औरpyopencv
अपने पूर्ववर्ती के साथctypes-opencv
।
मुख्य अंतर क्या हैं और मुझे किसका उपयोग करना चाहिए?
जवाबों:
आधिकारिक तौर पर, ओपनसीवी दो प्रकार के पायथन इंटरफेस जारी करता है, cv
और cv2
।
सीवी:
मैंने काम करना शुरू कर दिया cv
। इसमें सभी OpenCV डेटा प्रकारों को संरक्षित किया जाता है। उदाहरण के लिए, जब लोड किया जाता है, तो चित्र प्रारूप के होते हैं cvMat
, सी ++ के समान।
सरणी संचालन के लिए , आदि जैसे कई कार्य हैं cvSet2D
, cvGet2D
और कुछ चर्चाएं कहती हैं, वे धीमी हैं।
ImageROI के लिए, आपको विशेष कार्यों की आवश्यकता है cvSetImageROI
।
यदि आप कॉन्ट्रास्ट पाते हैं, तो cvSeq
संरचनाएं लौटा दी जाती हैं जो कि पायथन सूचियों या न्यूमपी सरणियों की तुलना में काम करने के लिए इतनी अच्छी नहीं हैं।
(और मुझे लगता है, जल्द ही इसके विकास रोक दिया जाएगा। इससे पहले, वहाँ केवल था cv
। बाद में, OpenCV दोनों के साथ आया था cv
और cv2
। अब, वहाँ नवीनतम विज्ञप्ति में, वहाँ केवल है cv2
मॉड्यूल, और cv
एक उपवर्ग के अंदर है cv2
। आप कॉल करने की जरूरत है import cv2.cv as cv
इसे एक्सेस करने के लिए।)
CV2:
और नवीनतम एक है cv2
। इस में, सब कुछ के रूप में दिया जाता है NumPy
जैसे वस्तुओं ndarray
और native Python
तरह की वस्तुओं lists
, tuples
, dictionary
, आदि तो यह NumPy समर्थन की वजह से, आप किसी भी numpy आपरेशन यहाँ कर सकते हैं। NumPy
एक अत्यधिक स्थिर और तेजी से सरणी प्रसंस्करण पुस्तकालय है।
उदाहरण के लिए, यदि आप एक छवि लोड करते हैं, तो एक ndarray
लौटा दी जाती है।
array[i,j]
आपको (i, j) स्थिति में पिक्सेल मान देता है।
इसके अलावा, imageROI के लिए, सरणी स्लाइसिंग का उपयोग किया जा सकता है ROI=array[c1:c2,r1:r2]
। अलग-अलग कार्यों की आवश्यकता नहीं।
दो छवियों को जोड़ने के लिए, किसी भी फ़ंक्शन को कॉल करने की आवश्यकता नहीं है, बस करें res = img1+img2
। (लेकिन NumPy जोड़ छवियों की तरह uint8 सरणियों के लिए एक modulo ऑपरेशन है । अधिक जानने के लिए OpenCV और Numpy में मैट्रिक्स अंकगणित के बीच लेख अंतर देखें ।
वापस लौटे कंट्रोवर्सी Numpy सरणियों की सूची है। आप Contours - 1: Contours के बारे में विस्तृत चर्चा पा सकते हैं ।
संक्षेप में, cv2 के साथ सब कुछ सरल और बहुत तेज है।
OpenCV-Python इंटरफेस, cv और cv2 केcv2
स्टैक ओवरफ्लो प्रश्न प्रदर्शन की तुलना में NumPy की गति कैसे होती है, इस पर एक सरल चर्चा ।
pyopencv :
मैं इसके बारे में ज्यादा नहीं जानता क्योंकि मैंने इसका इस्तेमाल नहीं किया है। लेकिन लगता है कि इसने विकास को रोक दिया है।
मुझे लगता है कि आधिकारिक पुस्तकालयों पर रहना बेहतर होगा।
संक्षेप में, मैं आपको cv2 का उपयोग करने की सलाह दूंगा!
संपादित करें: आप पायथन के लिए विंडोजcv2
में इंस्टॉलेशन ओपनसीवी में मॉड्यूल के लिए इंस्टॉलेशन प्रक्रिया देख सकते हैं ।