几天前,我开始寻找一种制作简单计算机视觉系统的好方法。OpenCV库是我需要的东西,但事实证明使用Python很难学习,特别是在OpenCV 2.4.3更新之后,它的Python相关文档非常少。所以我现在知道OpenCV中有很多变化,例如
import cv
是现在
import cv2
还有一些模块丢失了。我的意思是,是的,有一些新的python opencv语法的例子,但是它非常狭窄,而且很难理解。 例如: Python代码官方文档中的示例
cv2.cvtColor(src, code[, dst[, dstCn]])
我知道这段代码的含义和使用方法,至少我知道。但编写源代码和颜色代码并不能给我带来什么:
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
或者,如果我试图编写类似代码的变量:
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
那么,对于最新OpenCV,是否有任何与Python相关的参考文档/教程/书籍/指南,这些解释没有混淆像我这样的新手,以及C++或java的不需要的代码示例?
我认为你在走相反的道路。
实际上,有了新的
cv2
模块,OpenCV与旧的cv
接口相比变得简单得多。不仅简单,而且由于Numpy的支持,速度非常快,生产效率很高。唯一的问题是,我们应该知道如何恰当地使用它。在这里,您应该使用以下函数:
我希望您访问其中一个SOF,它显示了两个模块之间的一些比较:What is different between all these OpenCV Python interfaces?
另一个SOF在这里,这是一个简单的演示,说明如何使用Numpy支持加快代码的速度:Performance comparison of OpenCV-Python interfaces, cv and cv2
<> P>不需要学习C++或C来使用OpenCV,尽管C++是官方语言。尽管如此,Python OpenCV仍然有很好的支持。一旦掌握了如何使用OpenCV,就可以将C++代码转换为Python自己。然后你可以从C++教程中学习OpenCV。例如,我开始学习OpenCV从“学习OpenCV”的Gary Bradsky,完全是在C++。当时,只有cv
接口。正如您在评论中提到的,opencvpython.blogspot.com提供了一些入门教程。我开始在OpenCV中关注新手。
另外,查看这个SOF以获取更多教程:Books for OpenCV and Python?
从另一个角度来看,允许您使用新的OpenCV安装版本运行旧的代码。。。
首先,从cv迁移到cv2与库使用许多函数的不同数据结构有关。判断函数是否在cv2和cv之间发生了变化的最简单方法是cv函数以大写字母开头。重新编写的cv2函数似乎总是有小写的第一个字母。因此,如果你使用的是一本旧书或旧的例子,你仍然可以使用传统的简历。cv现在只是嵌入到cv2中。只需在脚本顶部使用以下内容
这允许您在不更改旧代码的情况下简单地运行旧代码。我将在这里演示您的函数调用。你有。。。
我注意到的第一件事是,您的函数可能被调用错误。(如果函数的第一个字母是小写,则应以cv2开头,而不是以cv开头)。其次是传递函数的“代码”代码'是cv2和cv的成员(这里的代码是noob,如果我的一些声音不准确,请原谅我),但并不总是相同的。你有“简历RGB2GRAY”。首先,不要引用。这是一个cv‘代码’而不是cv2。你也错过了前面的简历。为了演示我认为应该如何为旧的cv版本调用函数:
现在cv2。。。
好了,我希望这能有帮助。请记住,给定python运行脚本,您可以直接在命令行中键入任何不确定的内容。这对帮助我建立理解力是很有帮助的(我5天前第一次使用python)。例如,当您键入
直接进入python命令行,它会向您吐出“7”(方便,它是一个int)。cv2版吐出“7L”。请记住以某种形式时不时地使用WaitKey()函数,否则在某些情况下,highgui可能没有所需的时间来处理某些命令。那就结束了。抱歉,如果我涵盖了一些已经涵盖或提及的内容。如果我真的想删除它,管理员。
相关问题 更多 >
编程相关推荐