几天前,我开始寻找一种制作简单计算机视觉系统的好方法.OpenCV库是我需要的东西,但事实证明用Python学习很难,特别是在OpenCV 2.4.3更新之后,它有非常纤薄的Python相关文档.所以我现在明白OpenCV中有很多变化,例如excmple
import cv
Run Code Online (Sandbox Code Playgroud)
就是现在
import cv2
Run Code Online (Sandbox Code Playgroud)
并且有许多模块缺失.我的意思是,是的,有新的python-opencv语法的例子,但它非常狭窄,并且被证明很难理解.例如:Python代码的官方文档中的示例
cv2.cvtColor(src, code[, dst[, dstCn]])
Run Code Online (Sandbox Code Playgroud)
我知道这段代码意味着什么,以及如何使用它,至少我想我知道.但是编写源代码和颜色代码并没有给我带来任何好处:
Traceback (most recent call last):
File "C:\FILEFOLDER\tut.py", line 11, in <module>
cv.cvtColor('proba.jpg', 'CV_RGB2GRAY')
TypeError: an integer is required
Run Code Online (Sandbox Code Playgroud)
或者,如果我尝试编写变量代码:
Traceback (most recent call last):
File "C:\FILEFOLDER\tut.py", line 11, in <module>
cv.cvtColor('proba.jpg', CV_RGB2GRAY)
NameError: name 'CV_RGB2GRAY' is not defined
Run Code Online (Sandbox Code Playgroud)
那么有没有任何与Python相关的参考文档/教程/书籍/指南以及最新的OpenCV,其中有一些基本的解释,不会让像我这样的新手与C++或Java的不需要的代码示例混淆?
我认为你正在采取相反的方式.
实际上,使用新cv2模块,与旧cv接口相比,OpenCV变得更加简单.由于Numpy的支持,不仅简单,而且速度快,效率高.唯一的问题是,我们应该知道如何恰当地使用它.
在这里,您应该使用如下函数:
img = cv2.imread('pic.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
Run Code Online (Sandbox Code Playgroud)
我希望您访问一个SOF,它显示了两个模块之间的比较:所有这些OpenCV Python接口之间有什么不同?
另外一个SOF就在这里,这是一个关于如何使用Numpy支持加速代码的简单演示:OpenCV-Python接口,cv和cv2的性能比较
虽然C++是官方语言,但您无需学习C++或C来使用OpenCV.不过,Python-OpenCV还是有很好的支持.一旦掌握了如何使用OpenCV,您就可以自己将C++代码转换为Python.然后你也可以从C++教程学习OpenCV.例如,我开始从Gary Bradsky的"Learning OpenCV"学习OpenCV,它完全是用C++编写的.那时,只有cv界面.
正如您在评论中提到的,opencvpython.blogspot.com有一些入门教程.我开始专注于OpenCV中的新手.
另外,请查看此SOF以获取更多教程:OpenCV和Python的书籍?