Ubuntu网络摄像头上的Opencv错误(Logitech C270)捕获 – > HIGHGUI错误:V4L/V4L2:VIDIOC_S_CROP

使用logitech C270(OpenCV 2.4.2 / C)在Ubuntu上运行简单的摄像头捕获时出现此错误消息:

HIGHGUI ERROR: V4L/V4L2: VIdioC_S_CROP

并进一步:

Corrupt JPEG data: 2 extraneous bytes before marker 0xd1
Corrupt JPEG data: 1 extraneous bytes before marker 0xd6
Corrupt JPEG data: 1 extraneous bytes before marker 0xd0
Corrupt JPEG data: 1 extraneous bytes before marker 0xd0

我得到帧但是在写入Mat对象时交换了帧宽和高度的值,见下图:

Mat frame;
videoCapture = new VideoCapture(camId);
if(!videoCapture->isOpened()) throw Exception();

cout << "Frame width: " << videoCapture->get(CV_CAP_PROP_FRAME_WIDTH) << endl;
cout << "Frame height: " << videoCapture->get(CV_CAP_PROP_FRAME_HEIGHT) << endl;

(*videoCapture) >> frame;

cout << "Mat width: " << frame.rows << endl;
cout << "Mat height: " << frame.cols << endl;

输出

Frame width: 640
Frame height: 480
Mat width: 480
Mat height: 640
图像的宽度由列数给出.你的代码应该是
cout << "Mat width: " << frame.cols << endl;
cout << "Mat height: " << frame.rows << endl;

所以宽度和高度之间没有交换.

相关文章

1.安装过程出现0x00000000指令引用的0x00000000内存该内存不能为written 如果你安装的是inux系统 需要在...
写在全面:如果根据以下教程涉及到只读文件需要更改文件权限才能需修改文件内容,参考我的另一篇博客:...
写在前面:以下步骤中需要在终端输入命令,电脑端查看博客的朋友可以直接复制粘贴到终端,手机端查看的...
ubuntu16.04和18.04更换国内源 写在前面:安装好ubuntu双系统后,默认的软件更新源是国外的,在国内使用...
ubuntu双系统启动时卡死解决办法(在ubuntu16.04和18.04测试无误) 问题描述: 在安装完ubuntu双系统后...
又来造轮子了。。。。。。。。。。。。。。。。 今天使用w3af向文件中写入的时候,发现没有write权限,...