Пытаясь выполнить отслеживание планарного объекта в реальном времени с помощью opencv, я наткнулся на демонстрацию "find object" для pyopencv .Этот скрипт выполняет то, что я хочу, за исключением того, что он сравнивает одно статическое изображение с другим, тогда как я пытаюсь сравнить статическое изображение с текущим кадром, полученным с веб-камеры.С этой целью я заменил эту строку
scene_filename = "box_in_scene.png"
на эту
capture = cv.VideoCapture(0)
frame = Mat()
capture >> frame
imwrite("box_in_scene.png",frame)
. Это работает как следует, но когда я затем пытаюсь добавить простой цикл, чтобы он делал это непрерывно,проходит один цикл, затем останавливается.При выходе из скрипта я получаю следующую ошибку:
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupport
ed array type) in cvGetMat, file M:\programming\packages\opencv\workspace\2.1\Op
enCV-2.1.0\src\cxcore\cxarray.cpp, line 2476
Traceback (most recent call last):
File "find_obj.py", line 114, in <module>
imageDescriptors = surf(image, mask, imageKeypoints)
RuntimeError: M:\programming\packages\opencv\workspace\2.1\OpenCV-2.1.0\src\cxco
re\cxarray.cpp:2476: error: (-206) Unrecognized or unsupported array type in fun
ction cvGetMat
У кого-нибудь есть подсказка, что может быть причиной этого?
Я использую цикл
myloop = 1
while myloop == 1 :
Эта ссылка - это код целиком.