我正在尝试测试一个非常简单的程序来使用摄像头捕获视频,但它似乎窗口总是黑色的。摄像头的led灯亮了,程序编译得很好。
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main() {
VideoCapture stream1(0); //0 is the id of video device.0 if you have only one camera.
if (!stream1.isOpened()) { //check if video device has been initialised
cout << "cannot open camera";
}
//unconditional loop
while (true) {
Mat cameraFrame;
stream1.read(cameraFrame);
imshow("cam", cameraFrame);
if (waitKey(30) >= 0)
break;
}
system("pause");
return 0;
}发布于 2019-10-31 01:19:57
我也遇到了同样的问题,我发现卡巴斯基屏蔽了我的相机。如果您打开Kapresky并转到报告,然后转到高级线程保护选项卡下的主机入侵防御列,您可以找到它是否阻止了您的摄像头。
如果这就是问题所在,您可以转到Settings -> General Settings -> Exclusions -> Scan exclusions and trusted applications并单击Settings。然后转到Trusted Applications tab并单击Add -> Applications。搜索Python并单击Ok,然后选中所有复选框。单击“确定”,然后单击“保存”,它将正常工作。
发布于 2016-04-26 15:10:42
为了缩小问题的根源,下面是你可以如何继续:
VideoCapture stream1("video.avi");stream1.read(cameraFrame);
在cameraFrame上执行imshow。
如果您仍然看到黑屏,请将stream1.read(cameraFrame);替换为stream1>>cameraFrame;如果您现在可以看到您的视频,这意味着OpenCV highgui配置正确,并且您使用的摄像头可能存在问题。
VideoCapture stream1(1)替换VideoCapture stream1(0)。这将指向计算机的基本摄像头驱动程序,而不是主要摄像头驱动程序。上
发布于 2019-01-16 11:19:17
遇到类似的问题(但使用Python)。Saransh Kejriwa的评论适用于DSHOW。如果有人偶然发现了这一点:
fourcc = cv2.VideoWriter_fourcc('M','J','P','G')
cap = cv2.VideoCapture()
cap.open(1 + cv2.CAP_DSHOW)
cap.set(cv2.CAP_PROP_FOURCC, fourcc)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
cap.set(cv2.CAP_PROP_FPS, 60)https://stackoverflow.com/questions/36850330
复制相似问题