回答
正式地,OpenCV发布两种类型的Python接口,cv
和cv2
。
CV:
我开始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数组的模运算。请参阅文章Difference between Matrix Arithmetic in OpenCV and Numpy了解更多信息。
返回的轮廓是Numpy数组列表。你可以在Contours - 1 : Getting Started找到关于轮廓的详细讨论。
总之,使用cv2一切都简化和相当快。
如何NumPy的加快cv2
一个简单的讨论是在堆栈溢出问题Performance comparison of OpenCV-Python interfaces, cv and cv2。
pyopencv:
我不知道很多关于这一点,因为我没有使用过它。但似乎停止了进一步的发展。
我认为最好是坚持正式图书馆。
总之,我会建议你使用cv2!
编辑:你可以看到安装程序为cv2
模块中Install OpenCV in Windows for Python。
- 1. 这些有什么不同
- 2. Autolayout:为什么这些相同的约束有所不同?
- 3. 这些条件有什么不同?
- 4. 这些功能有什么不同?
- 5. 这些查询有什么不同?
- 6. <|> - 为什么这些示例的行为有所不同?
- 7. 为什么这些Rails验证有所不同?
- 8. 这些打印语句为什么会有所不同?
- 9. 所有这些* .FileListAbsolute.txt文件是什么?
- 10. 接口C(或C++)与Python有什么不同的选项?
- 11. opencv,python-opencv和libopencv有什么区别?
- 12. 空白接口与普通接口有什么不同?
- 13. 这个接口有什么问题?
- 14. 这些有什么区别?
- 15. 这些有什么问题?
- 16. 这些有什么区别?
- 17. 一些OpenCV命令有什么区别?
- 18. 为什么这些圈子不会有不同的颜色?
- 19. 所有这些音频框架有什么区别?
- 20. 这个OpenCv代码有什么问题?
- 21. 这个opencv代码有什么问题
- 22. 为什么这些生成器表达式的行为有所不同?
- 23. 为什么不是所有这些变量都得到相同的处理?
- 24. 为什么这些小型D程序的行为有所不同?
- 25. 为什么这些方法在测试控制器时有所不同
- 26. 为什么这些程序(仅在一个printf语句中有所不同)具有不同的输出?
- 27. 为什么这些看起来相同的代码片段的行为有所不同? (Python 3)
- 28. 这些XML验证方法之间有什么不同?
- 29. 这些分配变量的方式有什么不同?
- 30. 这些JavaScript匿名函数有什么不同?
你有链接到cv2吗? – Framester
cv2如果您从源代码构建OpenCV,Python接口将被编译和安装。如果您使用Linux或其他操作系统的二进制包,您应该查阅您的操作系统/分发文档。请参阅http://goo.gl/MUjXi寻求帮助。 –
@Framester:请参阅此链接中cv2的安装过程:http://opencvpython.blogspot.in/2012/05/install-opencv-in-windows-for-python.html –