我收到此错误:
<unknown> is not a numpy array
执行此代码时:
import cv2
import numpy as np
try:
cap = cv2.VideoCapture(0)
while (cap.isOpened()):
ret,img=cap.read()
cv2.imshow('output',img)
img2=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('gray_scale',img2)
imgthreshold=cv2.inRange(img,cv2.cv.Scalar(3,3,125),cv2.cv.Scalar(40,40,255),)
cv2.imshow('thresholded',imgthreshold)
k=cv2.waitKey(10)
if k==27:
break
cap.release()
cv2.destroyAllWindows()
except Exception as inst:
cap.release()
cv2.destroyAllWindows()
print("Eroor!!")
print(inst)
raise
这是回溯:
Traceback (most recent call last):
File "C:\Users\... ...\camara.py", line 14, in <module>
imgthreshold=cv2.inRange(img,cv2.cv.Scalar(3,3,125),cv2.cv.Scalar(40,40,255),)
TypeError: <unknown> is not a numpy array
我希望你能帮我解决这个问题。我已经检查了所有依赖项,如果我删除该行,它们也可以正常工作
imgthreshold=cv2.inRange(img,cv2.cv.Scalar(3,3,125),cv2.cv.Scalar(40,40,255),)
下一个,程序运行没有问题
最佳答案
您需要检查 VideoCapture::read 函数返回的状态。它返回一个 bool 标志,指示返回的图像是否完全有效。
import cv2
import numpy as np
try:
cap = cv2.VideoCapture(0)
while (cap.isOpened()):
ret,img=cap.read()
if not ret:
continue
cv2.imshow('output',img)
img2=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow('gray_scale',img2)
imgthreshold=cv2.inRange(img,cv2.cv.Scalar(3,3,125),cv2.cv.Scalar(40,40,255),)
cv2.imshow('thresholded',imgthreshold)
k=cv2.waitKey(10)
if k==27:
break
cap.release()
cv2.destroyAllWindows()
except Exception as inst:
cap.release()
cv2.destroyAllWindows()
print("Eroor!!")
print(inst)
raise
关于python - OpenCV 错误 - <unknown> 不是一个 numpy 数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32428855/