《QT中通过摄像头动态显示图片》由会员分享,可在线阅读,更多相关《QT中通过摄像头动态显示图片(3页珍藏版)》请在金锄头文库上搜索。
1、在QT中通过摄像头动态显示图片Camgui:Camgui(QWidget*parent,constchar*name,intwFlags):QWidget(parent,name,wFlags)曰国之前的代码略I创建一个QTimer的对象进行计时,间隔刷新窗体I在这里使用update。I与repaint比起来,这个SLOT可以避免闪屏Itimer=newQTimer(this);Iconnect(timer,SIGNAL(timeout(),SLOT(update();Itimer-start(30);voidCamgui:paintEvent(QPaintEvent*e)该对象为静态对象,不
2、需要每次paint都创建一个QPainterIstaticQPainterpaint(this);II该步很重要,设置标志I让QWidget在更新窗体时,不擦除原来的窗体I这样可以避免闪屏IsetWFlags(getWFlags()|Qt:WRepaintNoErase);II从摄像头获取图像信息到img指向的内存空间img=get_image(dev,width,height,palette,&size);II读取内存内容,创建QImage对象Iimage=newQImage;Iif(image-create(width,height,32,0,QImage:IgnoreEndian)加1for(x=0;xheight;x+)白由1for(y=0;yscanLine(x)+y;I*point=qRgb(r,g,b);Ii+=3;II开始绘图Ipaint.begin(this);Ipaint.drawImage(O,0,*image);Ipaint.end();II释放空间Iif(size)白由Imunmap(img,size);Ielseif(img)加Ifree(img);Ideleteimage;image=NULL;