gpt4 book ai didi

python - opencv getImage() 错误

转载 作者:太空宇宙 更新时间:2023-11-03 11:56:42 25 4
gpt4 key购买 nike

我今天用 simplecv python 接口(interface)包装了 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。它有一个内置的网络摄像头,(Cyber​​Link Youcam?)有人以前见过这个错误吗?我今天一直在网上寻找解决方案,但似乎没有任何效果。

更新 1:我使用此处找到的代码测试了 cv.QueryFrame(capture) in a separate Stack Overflow question它奏效了;所以我几乎将此归结为网络摄像头问题。

更新 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), cv.IPL_DEPTH_8U, 3)
cv.Copy(frame, newimg)
return Image(newimg, self)

然后运行你的程序,它会暂停为 pdb.set_trace(),在这里你可以检查帧的类型,并尝试找出如何获取帧的大小。

或者您可以在代码中进行捕获,并检查框架对象:

mycam = Camera()
cv.GrabFrame(mycam.capture)
frame = cv.RetrieveFrame(mycam.capture)

关于python - opencv getImage() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6990760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com