[求助]Linux下Opencv无法打开摄像头

wryse 2010-07-29 10:35:20
本人新手,系统是ubuntu 9.10,插上一个摄像头,用gstreamer-property能看到正常的摄像头图像。但用Opencv打开摄像头时始终返回null。
以下是代码:

#include <stdio.h>
#include "opencv/cv.h"
#include "opencv/highgui.h"

int main()
{
CvCapture* capture = 0;
IplImage* frame = 0;

capture = cvCaptureFromCAM( 0 );
//capture = cvCaptureFromCAM( -1 );//同样不行
//capture = cvCaptureFromCAM( CV_CAP_V4L2 + 0 );//同样不行
if (capture == NULL)
{
printf("No camera found!\n");//始终输出这一行
}

int fps=25;
cvNamedWindow( "Camera", 1 );

for(;;)
{
frame = cvQueryFrame( capture );

cvShowImage( "Camera", frame );
cvWaitKey(1000 / fps);
}

cvReleaseImage(&frame);
cvReleaseCapture( &capture );
return 0;
}

opencv是直接下载的lib库,没有通过源代码安装。摄像头用的是无驱的,应该是跑的linux自带的v4l2。不知道跟这两点有没有关系。
求高人指点!
...全文
1635 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
NorthGod 2012-06-21
  • 打赏
  • 举报
回复
请问这个宏要在什么地方打开呢?貌似用 CMake 的时候没看见啊
[Quote=引用 4 楼 的回复:]
如果使用apt-get安装opencv,一般不会有问题的,如果使用源码编译的方式,如果你是默认的配置方式,使用cvCaptureFromCAM函数,就会出现错误,需要在配置的时候打开一个叫什么“V4L2”的一个宏,有空可以看一下cvCaptureFromCAM的源码,不是很复杂。
VIDIOC_QUERYCTRL:input/output error:没有什么关系,opencv为了支持更多的摄像……
[/Quote]
xuxiyao4444 2012-06-18
  • 打赏
  • 举报
回复
如果使用apt-get安装opencv,一般不会有问题的,如果使用源码编译的方式,如果你是默认的配置方式,使用cvCaptureFromCAM函数,就会出现错误,需要在配置的时候打开一个叫什么“V4L2”的一个宏,有空可以看一下cvCaptureFromCAM的源码,不是很复杂。
VIDIOC_QUERYCTRL:input/output error:没有什么关系,opencv为了支持更多的摄像头,为更好的工作,部分信息是通过尝试的方式去获取,有些摄像头部分命令不支持,很正常。
上面只是个人意见,我也是一个初学者,希望大家有空交流交流,我的email:dancy_xu@126.com。
gengyiping20 2011-08-17
  • 打赏
  • 举报
回复
楼主,我在编译时出现VIDIOC_QUERYCTRL:input/output error,请问是什么原因?
jaker84268 2011-07-17
  • 打赏
  • 举报
回复 1
楼主你好,我也遇到这样的问题,我是自己编译的opencv库,下载到arm里也是提示打不开,首先我的摄像头是可以驱动了,用的是v4l2,我想问是不是cvCaptureFromCAM(-1)不能在arm上获取图像数据呢?导致无法运行的呢??
wryse 2010-07-30
  • 打赏
  • 举报
回复
自己解决了,问题很低级。直接从源下载的opencv的lib库只能下载到1.0版本,那会儿还不支持v4l2。通过最新的源码编译得到2.0的库就解决了。
不过居然一个回帖的都没有……好吧浪费30分…… = =||

4,446

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧