我试图在python opencv-2.4.3中编码,它给我一个错误如下
Traceback (most recent call last):
File "/home/OpenCV-2.4.3/cam_try.py", line 6, in <module>
cv2.imshow('video test',im)
error: /home/OpenCV-2.4.3/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat
Run Code Online (Sandbox Code Playgroud)
我不明白这是什么意思,任何人都可以帮助我吗?谢谢.
错误消息的相关片段是Unrecognized or unsupported array type in function cvGetMat.该cvGetMat()函数将数组转换为Mat.A Mat是OpenCV在C/C++世界中使用的矩阵数据类型(注意:您正在使用的Python OpenCV接口使用Numpy数组,然后在后台将其转换为Mat数组).考虑到这一背景,问题似乎是im您传递给的阵列cv2.imshow()形成不良.两个想法:
这可能是由于您的网络摄像头上的奇怪行为造成的......在某些摄像头上,会不时返回空帧.在将im数组传递给之前imshow(),请尝试确保它不为null.
如果每帧都出现错误,则取消您正在执行的某些处理,并cv2.imshow()在从网络摄像头抓取帧后立即调用.如果仍然不起作用,那么你就会知道它是你网络摄像头的问题.否则,逐行添加您的处理,直到您找出问题为止.例如,从这开始:
while True:
# Grab frame from webcam
retVal, image = capture.read(); # note: ignore retVal
# faces = cascade.detectMultiScale(image, scaleFactor=1.2, minNeighbors=2, minSize=(100,100),flags=cv.CV_HAAR_DO_CANNY_PRUNING);
# Draw rectangles on image, and then show it
# for (x,y,w,h) in faces:
# cv2.rectangle(image, (x,y), (x+w,y+h), 255)
cv2.imshow("Video", image)
i += 1;
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
25606 次 |
| 最近记录: |