找回密码
 立即注册
收起左侧

opencv和Qt的问题

1
回复
5075
查看
[复制链接]
累计签到:108 天
连续签到:1 天
来源: 2015-2-8 18:04:11 显示全部楼层 |阅读模式

马上注册,查看详细内容!注册请先查看:注册须知

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
通过opencv实现了播放视频的功能,但是不是通过cvnamedwindow()创建的窗口来播放视频的,而是通过Qt中的部件来播放。但是遇到一个问题就是,如果不用cvnamedwindow()函数来创建一个窗口,就无法使用cvwaitkey()函数,cvwaitkey()函数没法用的话,通过循环来读取视频的每一帧就会进入死循环,程序会出错。如何解决cvwaitkey()的问题。。。
系统的Sleep()函数是没有用的。。。
好苦恼,论坛里有使用opencv的吗?
  1. cvNamedWindow( "result",1);
  2. while (1){
  3.         image=cvQueryFrame(capture);
  4.         if(!image) break;
  5.         cvRectangle(image, cvPoint(0, DOWNHEIGHT), cvPoint(image->width, UPHEIGHT), CV_RGB(255, 0, 255), 1);
  6.         detect_and_draw(image);
  7.         char c=cvWaitKey(1);
  8.         if(c== 27) break;

  9.     }
复制代码
回复

使用道具 举报

累计签到:108 天
连续签到:1 天
2015-2-10 13:10:22 显示全部楼层
此问题已经解决

cvwaitkey(int n)的三个作用:
1、从cvnamedwindow创建的窗口中读取键盘事件
2、等待n毫秒,起到延时的作用
3、刷新窗口,使得插入窗口的图片可以正常显示。

去掉后视频不正常显示的原因是窗口没有得到刷新,所以每帧图像没有显示出来。所以,在将cvwaitkey这个函数去掉时,要注意使用其他途径刷新用于显示图片的窗口,这样图片才能够显示。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了