• 6121阅读
  • 12回复

如何轮流调用采集图像,大大帮忙。 [复制链接]

上一主题 下一主题
离线henry012
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-17
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2011-05-24) —
因为不能同时打开两个摄像头,所以想轮流打开采集,但是编程功底不够,主要程序部分如下,单独都能实现。

MyHelloForm::MyHelloForm( QWidget* parent, const char* name, WFlags fl)
     :HelloBaseForm(parent, name, fl)
{
  connect (this, SIGNAL(close_signal()), this, SLOT(camara_quit()));  
  connect (this, SIGNAL(quit_signal()), qApp, SLOT(quit()));
  connect (CloseButton, SIGNAL(clicked()), this, SLOT(camara_quit()));
  connect (SnapButton, SIGNAL(clicked()), this, SLOT(camara_snap()));
//这里是初始化第一个摄像头
  if (v4l2_init("/dev/video2"))
  {
    printf("video2 init is error!\n");
    emit(close_signal());
  }
  timer = new QTimer(this);
  connect (timer, SIGNAL(timeout()), this, SLOT(showMe1()));
  timer->start(FRAME_IDLE);
//如果注释掉下面内容就可以显示一边了,但我还想显示另一个摄像头。  
  
  //这一段是清除映射关系等
     munmap(buffers[0].start, FRAME_COUNT*buffers[0].length);
   ::close(fd);
    timer->stop();

//这一段是打开第二个摄像头
  if (v4l2_init2("/dev/video3"))
  {
   printf("video3 init is error!\n");
    emit(close_signal());
  }  
timer = new QTimer(this);
  connect (timer, SIGNAL(timeout()), this, SLOT(showMe2()));
  timer->start(FRAME_IDLE);
//程序到这里结束可以显示第二个摄像头,但是不能显示第一个
//我大概设计了一个UI左右两边可以实时显示采集的图像就是showMe1和showMe2。
//怎么让他们轮流采集呢,一直不成功,求各位大大帮忙。
  
}
离线zzh

只看该作者 1楼 发表于: 2011-05-17
楼主真厉害
离线lknlfy
只看该作者 2楼 发表于: 2011-05-17
LZ能分享下摄像头采集的程序吗?
兜兜转转,我终于入门了Qt
离线wxj120bw

只看该作者 3楼 发表于: 2011-05-18
搂主 你两个摄像头的计时器对象怎么都用一个呢timer,虽然实例两个QTimer对象,但链接信号与曹的时候都用timer。
离线henry012
只看该作者 4楼 发表于: 2011-05-18
回 3楼(wxj120bw) 的帖子
这样会出 问题?我不是很明白……
离线henry012
只看该作者 5楼 发表于: 2011-05-18
回 2楼(lknlfy) 的帖子
还在摸索阶段,网上很多啊,只是没有两路采集的。
离线wxj120bw

只看该作者 6楼 发表于: 2011-05-18
Re:回 3楼(wxj120bw) 的帖子
引用第4楼henry012于2011-05-18 08:33发表的 回 3楼(wxj120bw) 的帖子 :
这样会出 问题?我不是很明白……

你就声明两个计时器对象 timer1,timer2,分别取连接连个槽 看看能不能行
离线henry012
只看该作者 7楼 发表于: 2011-05-18
回 6楼(wxj120bw) 的帖子
嗯……问题是他们不能同时采集的原因不在于此,所以不用改了,我现在弄了一个手动切换的按钮……感觉不太好
离线nsdy
只看该作者 8楼 发表于: 2011-05-18
楼主没有试试用双线程?
离线henry012
只看该作者 9楼 发表于: 2011-05-18
回 8楼(nsdy) 的帖子
双线程是怎么回事,能简单介绍下么,而且我是在嵌入式linux的arm开发板上做的
离线lknlfy
只看该作者 10楼 发表于: 2011-05-24
用Qt的多线程吧。。
兜兜转转,我终于入门了Qt
离线henry012
只看该作者 11楼 发表于: 2011-05-25
回 10楼(lknlfy) 的帖子
不知道类,反正大概用按钮设计了个轮流,arm单片机能多线程么不了解多线程……
离线lknlfy
只看该作者 12楼 发表于: 2011-05-25
QThread
兜兜转转,我终于入门了Qt
快速回复
限100 字节
 
上一个 下一个