Python 3.x 错误,但似乎什么都没有错?cv2-python
我在YouTube上一行一行地学习教程,效果很好。因为这是我第一次做识别工作 我没有改变任何东西,现在它给了我一个错误Python 3.x 错误,但似乎什么都没有错?cv2-python,python-3.x,cv2,Python 3.x,Cv2,我在YouTube上一行一行地学习教程,效果很好。因为这是我第一次做识别工作 我没有改变任何东西,现在它给了我一个错误 导入cv2 url='http//192.168.1.88:4747/视频' cap=cv2.VideoCapture(url) face_cascade=cv2.CascadeClassifier(“Lib\\site packages\\cv2\\data\\haarcascade\u frontalface\u alt2.xml”) 尽管如此: ret,frame=cap
导入cv2
url='http//192.168.1.88:4747/视频'
cap=cv2.VideoCapture(url)
face_cascade=cv2.CascadeClassifier(“Lib\\site packages\\cv2\\data\\haarcascade\u frontalface\u alt2.xml”)
尽管如此:
ret,frame=cap.read()
gray=cv2.cvtColor(frame,cv2.COLOR_bgr2; gray)#当None
传递给cvtColor()
您需要测试ret
,或者帧不是None
。如果你使用的是笔记本电脑网络摄像头,根据我的经验,相机需要几帧时间才能“预热”并返回图像,这并不少见。归功于-&-他们的评论帮助我了解了为什么is什么也没返回
URL中缺少:
导致cap=cv2.VideoCapture(url)
函数未从网络摄像头接收任何帧,因此ret,frame=cap.read()
刚刚返回False
和None
显然frame
中的某些内容为空。如果在使用cv2.cvtColor(…)
之前添加print(ret)
和print(frame)
,您会得到什么?URL仍然有效吗?阅读视频帧后立即使用cv2.imshow(“frame”,frame),查看帧抓取是否有效或视频URL是否仍然有效。@mkrieger1和@fmw42,我将手机用作网络摄像头(因为我没有手机)。它将捕获的内容从我的手机发送到IP地址。当我在浏览器中转到URL时,它会工作。但是python由于某些原因无法工作。我甚至导入了时间模块,以便在它显示任何内容之前添加某种“缓冲区”,我希望它能够连接。您正确地说,帧
正在打印无
,而ret
正在打印假
。我不知道这是应用程序还是python的问题。
Traceback (most recent call last):
File "C:/Users/Tomas/PycharmProjects/Webcam Phone/venv/Webcam.py", line 9, in <module>
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.3.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'