错误消息的相关代码段为
Unrecognized or unsupported array type in functioncvGetMat。该
cvGetMat()函数将数组转换为
Mat。A
Mat是OpenCV在C / C
++世界中使用的矩阵数据类型(注意:您正在使用的Python
OpenCV接口使用Numpy数组,然后将它们在幕后转换为
Mat数组)。考虑到这种背景,问题似乎在于
im您传递给的数组的
cv2.imshow()格式不正确。两个想法:
这可能是由于您的网络摄像头的古怪行为引起的…在某些摄像头上,有时会返回空帧。在将
im
数组传递给之前imshow()
,请尝试确保其不为null。如果 每个 帧 都 出现错误,请消除您正在执行的某些处理,并
cv2.imshow()
在从网络摄像头抓取帧后立即致电。如果仍然无法解决问题,那么您会发现网络摄像头存在问题。否则,逐行添加您的处理,直到找到问题所在。例如,从此开始:
faces = cascade.detectMultiScale(image, scaleFactor=1.2, minNeighbors=2, minSize=(100,100),flags=cv.CV_HAAR_DO_CANNY_PRUNING);while True:# Grab frame from webcamretVal, image = capture.read(); # note: ignore retVal
for (x,y,w,h) in faces:cv2.rectangle(image, (x,y), (x+w,y+h), 255)# Draw rectangles on image, and then show it
cv2.imshow("Video", image)i += 1;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)