มี
opencv(ห้องสมุดจากพวก OpenCV)cv(ไลบรารีเก่าจากพวก OpenCV) และpyopencvctypes-opencvกับบรรพบุรุษของมัน
อะไรคือความแตกต่างที่สำคัญและฉันควรใช้อันไหน?
มี
opencv (ห้องสมุดจากพวก OpenCV) cv (ไลบรารีเก่าจากพวก OpenCV) และpyopencvctypes-opencvกับบรรพบุรุษของมันอะไรคือความแตกต่างที่สำคัญและฉันควรใช้อันไหน?
คำตอบ:
อย่างเป็นทางการ OpenCV เผยแพร่อินเตอร์เฟส Python สองประเภทcvและcv2.
ประวัติย่อ:
cvผมเริ่มทำงานใน ในสิ่งนี้ประเภทข้อมูล OpenCV ทั้งหมดจะถูกเก็บรักษาไว้เช่นนี้ ตัวอย่างเช่นเมื่อโหลดรูปภาพจะมีรูปแบบcvMatเช่นเดียวกับใน C ++
สำหรับการดำเนินงานอาร์เรย์มีฟังก์ชั่นหลายอย่างcvSet2D, cvGet2Dฯลฯ และการอภิปรายบางคนบอกว่าพวกเขาจะช้าลง
สำหรับ imageROI คุณต้องมีฟังก์ชั่นพิเศษเช่นcvSetImageROI.
หากคุณพบรูปทรงcvSeqจะมีการส่งคืนโครงสร้างซึ่งใช้งานได้ไม่ดีเมื่อเทียบกับรายการ Python หรืออาร์เรย์ NumPy
(และฉันคิดว่าในไม่ช้าการพัฒนาจะหยุดลงก่อนหน้านี้มีเพียงอย่างเดียว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 เช่นรูปภาพดูบทความความแตกต่างระหว่าง Matrix Arithmetic ใน OpenCV และ Numpyเพื่อทราบข้อมูลเพิ่มเติม
รูปทรงที่ส่งคืนคือรายการอาร์เรย์ Numpy คุณสามารถค้นหาการอภิปรายรายละเอียดเกี่ยวกับรูปทรงในรูปทรง - 1: การเริ่มต้น
ในระยะสั้นด้วย cv2 ทุกอย่างง่ายขึ้นและค่อนข้างเร็ว
การอภิปรายง่ายๆในการ NumPy ความเร็วขึ้นcv2อยู่ในกองมากเกินคำถามเปรียบเทียบประสิทธิภาพของอินเตอร์เฟซ OpenCV-หลามพันธุ์และ CV2
pyopencv :
ฉันไม่ค่อยรู้เรื่องนี้ตั้งแต่ยังไม่ได้ใช้ แต่ดูเหมือนว่าจะหยุดการพัฒนาต่อไป
ฉันคิดว่ามันจะดีกว่าถ้ายึดติดกับห้องสมุดทางการ
ในระยะสั้นฉันขอแนะนำให้คุณใช้ cv2!
แก้ไข: คุณสามารถดูขั้นตอนการติดตั้งสำหรับcv2โมดูลในการติดตั้ง OpenCV ใน Windows สำหรับงูหลาม