2012-05-02 180 views

回答

116

正式地,OpenCV发布两种类型的Python接口,cvcv2

CV:

我开始cv工作。在此,所有的OpenCV数据类型都被保留。例如,加载时,图像格式为cvMat,与C++相同。

对于数组操作,有几个函数,如cvSet2D,cvGet2D等等。有些讨论说,它们比较慢。

对于imageROI,您需要特殊的功能,如cvSetImageROI

如果您发现等高线,则返回cvSeq结构,与Python列表或NumPy数组相比,它们不太适合使用。

(我想,很快它的发展将被停止。此前,只有cv。后来,OpenCV的带着两个cvcv2。现在,在最新的版本中,只存在cv2模块,并cv里面cv2一个子类需要调用import cv2.cv as cv访问它)

CV2:。

而最新的一个是cv2。在这一切中,所有内容都返回为NumPy对象,如ndarraynative 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

+0

你有链接到cv2吗? – Framester

+0

cv2如果您从源代码构建OpenCV,Python接口将被编译和安装。如果您使用Linux或其他操作系统的二进制包,您应该查阅您的操作系统/分发文档。请参阅http://goo.gl/MUjXi寻求帮助。 –

+1

@Framester:请参阅此链接中cv2的安装过程:http://opencvpython.blogspot.in/2012/05/install-opencv-in-windows-for-python.html –

相关问题