python – opencv getImage()错误
发布时间:2020-12-20 13:24:16 所属栏目:Python 来源:网络整理
导读:我今天用simplecv python接口包装了opencv.通过官方 SimpleCV Cookbook后,我成功地获得了 Load,Save和 Manipulate图像.因此,我知道库正在正确加载. 但是,在Using a Camera,Kinect,or Virtual Camera标题下,我没有成功运行一些命令.特别是,mycam = Camera()工
我今天用simplecv
python接口包装了opencv.通过官方
SimpleCV Cookbook后,我成功地获得了
Load,Save和
Manipulate图像.因此,我知道库正在正确加载.
但是,在Using a Camera,Kinect,or Virtual Camera标题下,我没有成功运行一些命令.特别是,mycam = Camera()工作,但img = mycam.getImage()产生了以下错误: In [35]: img = mycam.getImage().save() OpenCV Error: Bad argument (Array should be CvMat or IplImage) in cvGetSize,file /home/jordan/OpenCV-2.2.0/modules/core/src/array.cpp,line 1237 --------------------------------------------------------------------------- error Traceback (most recent call last) /home/simplecv/<ipython console> in <module>() /usr/local/lib/python2.7/dist-packages/SimpleCV-1.1-py2.7.egg/SimpleCV/Camera.pyc in getImage(self) 332 333 frame = cv.RetrieveFrame(self.capture) --> 334 newimg = cv.CreateImage(cv.GetSize(frame),cv.IPL_DEPTH_8U,3) 335 cv.Copy(frame,newimg) 336 return Image(newimg,self) error: Array should be CvMat or IplImage 我在HP TX2500平板电脑上运行Ubuntu Natty.它有一个内置的网络摄像头,(讯连科技Youcam?)有没有人见过这个错误?我今天一直在网上寻找解决方案,但似乎没有什么可以做的. 更新1:我使用in a separate Stack Overflow question中找到的代码测试了cv.QueryFrame(捕获)并且它工作正常;所以我几乎把它钉在网络摄像头问题上. 更新2:事实上,我在没有网络摄像头的机器上得到完全相同的错误!它看起来像TX2500不兼容…… 解决方法
由于从SimpleCV的Camera.py引发的错误,您需要调试getImage()方法.如果你可以编辑它:
def getImage(self): if (not self.threaded): cv.GrabFrame(self.capture) frame = cv.RetrieveFrame(self.capture) import pdb # <-- add this line pdb.set_trace() # <-- add this line newimg = cv.CreateImage(cv.GetSize(frame),3) cv.Copy(frame,newimg) return Image(newimg,self) 然后运行你的程序,它将暂停为pdb.set_trace(),在这里你可以检查框架的类型,并试图弄清楚如何获得框架的大小. 或者您可以在代码中执行捕获,并检查框架对象: mycam = Camera() cv.GrabFrame(mycam.capture) frame = cv.RetrieveFrame(mycam.capture) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |