我正在尝试制作一个应用程序,利用网络摄像头获取视频。但是当我运行程序时,网络摄像头没有启动,我也没有看到cv2窗口打开。我甚至试着制作一个简单的网络摄像头程序,但它也不起作用:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
我得到以下错误:
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (436) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Traceback (most recent call last):
File "test.py", line 11, 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'
我的网络摄像头在其他应用程序中工作正常。只有cv2有问题。我应该怎么做来解决这个问题
您使用的程序是视频的“hello The world”或闪烁led或arduino
所以我遇到了和你一样的问题,答案是。。你的相机坏了
当我买了非常昂贵的相机(20美元)时,我安装了驱动程序,opencv一切正常
我最近用我的WIFI做了一个噩梦,我开始卸载驱动程序
我终于解决了我的WIFI问题是的!!! 然后我重新安装我的驱动程序,包括视频,但 我的猫抓伤了视频的原始安装盘,所以我让windows安装了一个通用驱动程序
一切看起来都很好,声音和图像都很好(20美元的相机你还想要什么)
过了一段时间,我回到openCV,然后…同样的错误
cv2.error:OpenCV(4.3.0)C:\projects\opencvpython\OpenCV\modules\imgproc\src\color.cpp:182:error:(-215:断言失败)_函数“cv::cvtColor”中的src.empty()
我查看了所有的论坛,测试了我可以安装其他版本的所有东西,以及所有耗时的“魔术”(但你学到了很多这是好的一面) 完全绝望的我记得我没有安装原来的驱动程序 答对 了 我去商店是因为这个oem产品没有internet地址来加载驱动程序GRGRRGR 现在一切都很好 小提示 使用通用驱动程序,我经常被迫断开并重新连接我的相机与此测试 https://www.onlinemictest.com/webcam-test/ (不确定该场地是否干净,使用风险自负) 因此,安装一个适合您的相机的驱动程序,并停止怀疑opencv和您的安装 我的五美分
似乎没有可以转换为灰度的帧。 试试这个怎么样
看起来相机启动和代码进入while循环之间可能存在计时问题。我遇到了完全相同的问题,被难住了
我甚至有一个以前的代码可以工作(在另一个项目中)。因此,我尝试在进入while循环之前添加一个额外的读取
这起作用了。然后我想看看这是否真的解决了它。我删除了while循环之前的
cap.read()
,并重新运行代码。现在它继续工作我在想,在它能够立即启动之前,相机必须启动并被程序读取一次
相关问题 更多 >
编程相关推荐