首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

在QT中经过摄像头动态显示图片

2012-08-29 
在QT中通过摄像头动态显示图片 .Camgui::Camgui(QWidget?*parent,?const?char?*name,?int?wFlags):QWidget

在QT中通过摄像头动态显示图片 .

Camgui::Camgui(QWidget?*parent,?const?char?*name,?int?wFlags):QWidget(parent,?name,?wFlags)
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片...{
在QT中经过摄像头动态显示图片????//之前的代码略
在QT中经过摄像头动态显示图片????//创建一个QTimer的对象进行计时,间隔刷新窗体
在QT中经过摄像头动态显示图片????//在这里使用update()
在QT中经过摄像头动态显示图片????//与repaint比起来,这个SLOT可以避免闪屏
在QT中经过摄像头动态显示图片????timer?=?new?QTimer(this);
在QT中经过摄像头动态显示图片????connect(timer,?SIGNAL(timeout()),?SLOT(update()));
在QT中经过摄像头动态显示图片????timer->start(30);
在QT中经过摄像头动态显示图片}
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片void?Camgui::paintEvent(QPaintEvent?*e)
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片...{
在QT中经过摄像头动态显示图片????int?x,?y;
在QT中经过摄像头动态显示图片????int?i?=?0;
在QT中经过摄像头动态显示图片????QRgb?*point;
在QT中经过摄像头动态显示图片????int?r,?g,?b;
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片????//创建该PaintEvent的操作对象paint

??????? //该对象为静态对象,不需要每次paint都创建一个QPainter
在QT中经过摄像头动态显示图片????static QPainter?paint(this);
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片????//该步很重要,设置标志
在QT中经过摄像头动态显示图片????//让QWidget在更新窗体时,不擦除原来的窗体
在QT中经过摄像头动态显示图片????//这样可以避免闪屏
在QT中经过摄像头动态显示图片????setWFlags(getWFlags()?|?Qt::WRepaintNoErase);
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片????//从摄像头获取图像信息到img指向的内存空间
在QT中经过摄像头动态显示图片????img?=?get_image(dev,?width,?height,?palette,?&size);
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片????//读取内存内容,创建QImage对象
在QT中经过摄像头动态显示图片????image?=?new?QImage;
在QT中经过摄像头动态显示图片????if(image->create(width,?height,?32,?0,?QImage::IgnoreEndian))
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片????...{
在QT中经过摄像头动态显示图片????????for(x?=?0;?x?<?height;?x++)
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片????????...{
在QT中经过摄像头动态显示图片????????????for(y?=?0;?y?<?width;?y++)
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片????????????...{
在QT中经过摄像头动态显示图片????????????????r?=?(int)img[i+2];
在QT中经过摄像头动态显示图片????????????????g?=?(int)img[i+1];
在QT中经过摄像头动态显示图片????????????????b?=?(int)img[i];
在QT中经过摄像头动态显示图片????????????????point?=?(QRgb?*)image->scanLine(x)+y;
在QT中经过摄像头动态显示图片????????????????*point?=?qRgb(r,?g,?b);
在QT中经过摄像头动态显示图片????????????????i?+=?3;
在QT中经过摄像头动态显示图片????????????}
在QT中经过摄像头动态显示图片????????}
在QT中经过摄像头动态显示图片????}
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片????//开始绘图
在QT中经过摄像头动态显示图片????paint.begin(this);
在QT中经过摄像头动态显示图片????paint.drawImage(0,?0,?*image);
在QT中经过摄像头动态显示图片????paint.end();
在QT中经过摄像头动态显示图片
在QT中经过摄像头动态显示图片????//释放空间
在QT中经过摄像头动态显示图片????if(size)
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片????...{
在QT中经过摄像头动态显示图片????????munmap(img,?size);
在QT中经过摄像头动态显示图片????}
在QT中经过摄像头动态显示图片????else?if(img)
在QT中经过摄像头动态显示图片在QT中经过摄像头动态显示图片????...{
在QT中经过摄像头动态显示图片????????free(img);
在QT中经过摄像头动态显示图片????}
在QT中经过摄像头动态显示图片????delete?image;
在QT中经过摄像头动态显示图片????image?=?NULL;
在QT中经过摄像头动态显示图片}

?

来源:http://blog.csdn.net/skywalker_nick/article/details/1815782


热点排行