主题 : QT2 + v4l2采集图像出错,望高手解答。 复制链接 | 浏览器收藏 | 打印
不在战斗中坚强起来,就在懦弱中死亡!
级别: 新手上路
UID: 14142
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2010-02-03
最后登录: 2011-06-17
楼主  发表于: 2011-03-22 15:12

 QT2 + v4l2采集图像出错,望高手解答。

图像的采集的函数和v4l2 api中给出的capture.c的内容一样。

摄像头是极速的T61,设备属性如下:
camara driver: uvcvideo
camara card: Gsou USB2.0 Camera
camara bus info: usb-0000:02:03.0-1
camara version: 256
支持的Video格式为:
Support format:
    1.YUV 4:2:2 (YUYV)

显示代码为:
   QPixmap *pixmap=new QPixmap(WIDTH,HEIGHT);
    //get data
    mainloop();
   QImage image;
    int len = buffers[0].length;
    QImage img((uchar *)buffers[0].start, WIDTH, HEIGHT, 16,0,0,QImage::IgnoreEndian);
    pixmap->convertFromImage(img);
    lblImage->setPixmap(*pixmap);
      
采集到的图像显示到QLabel时,图像在水平方向上发生了压缩,并同时并列显示了两次。显示结果如附件图片所示。
/////////////////////////////////////////////
如果用img.loadFromData((uchar*) buffers[0].start,WIDT,HEIGHT);来加载数据的话,得到的是一张全黑的照片。
弄了好多天了,一时还找不到问题出在哪里?请各位帮帮我!
谢谢!


    
[ 此帖被独孤求学在2011-03-22 20:29重新编辑 ]
不在战斗中坚强起来,就在懦弱中死亡!
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-03-22 15:32
什么板? mini6410?
不在战斗中坚强起来,就在懦弱中死亡!
级别: 新手上路
UID: 14142
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2010-02-03
最后登录: 2011-06-17
2楼  发表于: 2011-03-22 16:08

 回 1楼(911gt3) 的帖子

Fedora 14
不在战斗中坚强起来,就在懦弱中死亡!
级别: 侠客
UID: 4545
精华: 3
发帖: 88
金钱: 810 两
威望: 614 点
综合积分: 236 分
注册时间: 2009-03-19
最后登录: 2020-06-17
3楼  发表于: 2011-03-22 17:55
如果支持的采集格式只有YUYV
那么你需要在构造QImage 对象之前先将YUYV格式转换成RGB格式  网上有很多转换函数
不在战斗中坚强起来,就在懦弱中死亡!
级别: 新手上路
UID: 14142
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2010-02-03
最后登录: 2011-06-17
4楼  发表于: 2011-03-22 20:18
我看到很多人都说可以直接显示YUYV格式的数据,莫非都是先转换为RGB再实现的吗?
[ 此帖被独孤求学在2011-03-22 20:30重新编辑 ]
不在战斗中坚强起来,就在懦弱中死亡!
级别: 新手上路
UID: 88984
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2013-03-19
最后登录: 2013-03-28
5楼  发表于: 2013-03-28 22:06
拖LZ的福,我的图片已经大小正常了,现在告诉你。 设置buffer大小的时候,要设置为你要显示大小的2倍,就是上面的WIDTH HEIGHT 要为下面显示大小的2倍。但是我显示的图片绿色非常严重,希望楼主能找到方法。
级别: 新手上路
UID: 85493
精华: 0
发帖: 9
金钱: 50 两
威望: 10 点
综合积分: 18 分
注册时间: 2013-01-05
最后登录: 2015-01-08
6楼  发表于: 2013-04-05 17:46
yuyv到RGB转换参考
http://blog.chinaunix.net/uid-21410064-id-3248638.html
使用QImage::Format_RGB888就好了