利用Opencv读取电脑的摄像头,代码如下,一直无法正常运行,搜索网上的解决方案,均未解决。代码语法没有错误,摄像头也可以打开,但是就是无法读取当前帧图像
#include <opencv.hpp>
using namespace cv;
int main() {
VideoCapture capture(0);
if (!capture.isOpened())
return -1;
Mat frame;
while (1) {
capture >> frame;
imshow("读取视频", frame);
waitKey(30);
}
return 0;
}
由于一直未找到原因,在网上搜索到老版本的代码如下,便可以成功读取并显示摄像头的画面。
#include <opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
{
cvNamedWindow("视频");
CvCapture* capture = cvCreateCameraCapture(0);
IplImage* frame;
while (1)
{
frame = cvQueryFrame(capture);
cvResizeWindow("视频", 640, 480);
cvShowImage("视频", frame);
cvWaitKey(50);
}
cvReleaseCapture(&capture);
cvDestroyWindow("视频");
return 0;
}
大致猜测无法获取当前帧的原因是摄像头和opencv版本之间的兼容问题。