python - 使用opencv与网络摄像机匹配的模板

标签 python opencv

看一下下面的代码。

import cv
import cv2

print "starting now"
im = cv.CaptureFromCAM(0)
template=cv.LoadImage("/home/patrick/Desktop/card.JPG")


W=3648
H=2736

w,h = cv.GetSize(template)

width = W - w + 1

height = H - h + 1

result = cv.CreateImage((width, height), 32, 1)
#image= cv.CreateImage((width, height), 32, 1)
cv.MatchTemplate(im, template, result, cv.CV_TM_CCORR)

(min_x, max_y, minloc, maxloc) = cv.MinMaxLoc(result)

(x, y) = minloc

print (x,y)

当我运行时,我得到以下错误信息
    cv.MatchTemplate(im, template, result, cv.CV_TM_CCORR)
TypeError: CvArr argument 'image' must be IplImage, CvMat or CvMatND. Use fromarray() to convert numpy arrays to CvMat or cvMatND

如何将网络摄像头中的图像转换为可以使用匹配模板处理的数据?

最佳答案

问题是您的im变量是videoCapture对象。您需要grab一个框架来获取图像。

另一个问题是您使用的是旧的简历界面。较新的cv2更好用。 Here的模板匹配教程。

关于python - 使用opencv与网络摄像机匹配的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202312/

相关文章:

python - 将对象转换为日期时间

python - QImage内存泄漏

python - 检测 OCR 文本图像是否上下颠倒

python - 如何有效地将形状为(w,h,3)的numpy图像转换为在第三轴上具有r,g,b,x,y的(w,h,5)?

python串行写入超时

Python OSX $ which Python gives/Library/Frameworks/Python.framework/Versions/2.7/bin/python

带有 -m 的 Python 脚本完成但最后出错

opencv - 如何使用opencv python中的边缘检测返回边缘数?

python-2.7 - Python 中 OpenCV3 中的 CreateMemStorage() 等效于什么?

python - 在 wxPython 中绘图的最佳 Canvas ?