使用opencv与网络摄像头匹配的模板

时间:2013-10-05 20:20:56

标签: 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

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

1 个答案:

答案 0 :(得分:0)

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

另一个问题是你正在使用旧的cv界面。较新的cv2可以更好地使用。 Here是模板匹配教程。