主题 : 在smart210的qt环境下使用Opencv打不开摄像头 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 124793
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2016-04-27
最后登录: 2016-07-24
楼主  发表于: 2016-07-05 21:33

 在smart210的qt环境下使用Opencv打不开摄像头

问题:在板子下面运行程序打不开摄像头。
请问各位有在arm板的linux系统下使用Opencv打开过摄像头吗?
我在if(cap.isopen()!=1)下面写了打开一张图片,结果打开了图片,摄像头没有打开。
void MainWindow::on_OpenCamera_clicked()
{
   if(capture.isOpened())
       capture.release();
   capture.open(3);
   Mat a(640,480,3);
   if(capture.isOpened()!=1)
   {
       image=Mat2QImage(a);
       ui->label->setPixmap(QPixmap::fromImage(image));
   }
   if(capture.isOpened())
   {
       rate=capture.get(CV_CAP_PROP_FPS);
       capture>>frame;
       if(frame.empty()!=1)
       {
           image=Mat2QImage(frame);
           ui->label->setPixmap(QPixmap::fromImage(image));
           timer=new QTimer(this);
           timer->setInterval(30);
           connect(timer, SIGNAL(timeout()), this, SLOT(nextFrame()));
           timer->start();
       }
   }
}
板子的/dev下面在插上支持uvc的摄像头后多出一个video3,我拿cap.open(int index),index取-1,0,1,3试过,还是不行。
在电脑上运行是可以的,选取0就打开自带的摄像头,选取1就可以打开uvc摄像头。
Opencv移植到板子上的库应该没问题。
在电脑上的/dev下面有个v4l2的文件夹,当摄像头插拔的时候有文件生成和消失,但是在板子上的/dev下面没有v4l2。我在板子上面用find搜索也没有找到带有v4l或者v4l2的文件,但是用友善之臂提供的应用程序可以打开摄像头。这里的问题是,板子的linux系统到底支不支持v4l或者v4l2,按理来说应该是支持的吧,否则提供的应用程序如何能打开摄像头?这些东西应该是编译到内核中的?
网上有的人说是Opencv在cmake的时候没有with v4l的选项,需要把target中的arm-linux改成Linux,才能出现with v4l的选项,这样的确是可以,但是在make的时候报错,不知如何解决,而且也不确定到底是不是这个原因,就是说Opencv在make的时候是否已经带有v4l了?
级别: 新手上路
UID: 134471
精华: 0
发帖: 26
金钱: 130 两
威望: 26 点
贡献值: 0 点
综合积分: 52 分
注册时间: 2017-09-04
最后登录: 2019-07-10
1楼  发表于: 2019-03-06 11:00
你好,你的这个问题解决了吗
我现在也遇到了这个问题。