• 10172阅读
  • 7回复

用V4L2的api采集后的数据如何用framebuffer显示到micro2440的LCD上? [复制链接]

上一主题 下一主题
离线cdutherbert
 
只看楼主 倒序阅读 楼主  发表于: 2010-03-29
— 本帖被 XChinux 执行加亮操作(2010-11-11) —
现在,把采集的USB图片数据保存到了buffer里了。看一些帖子可以直接用framebuffer显示到LCD上。我用了如下语句:假设ptr是V4L2采集的buffer的数据
int x,y;
  int location;
  
    for ( y = 0; y < 240; y++ )    // 纵扫描
  {
         for ( x = 0; x <320; x++ )   // 行扫描  
    {
             location = (x + xoffset) * 2 +(y + yoffset) * vd->finfo.line_length;  
             *((unsigned short int*)(vd->fbp + location )) = *ptr++;
         }
    }
但是,LCD上显示的一些蓝色。请问该如何弄。请高人指点。是不是需要把采集的数据转化?
离线lishiyong110
只看该作者 1楼 发表于: 2010-03-30
使用mmap将framebuff映射到进程空间,然后操作要简单些。
对于你遇到的问题,不是很清楚。你采集到图像格式是什么?
静下心来学习
离线cdutherbert
只看该作者 2楼 发表于: 2010-03-30
采集到得图片格式为JPEG.存放在v4l2_buffer结构中。是不是需要转换成RGB才能用framebuffer显示出来?
离线worthing

只看该作者 3楼 发表于: 2010-05-14
请问,楼主,解决了这个问题嘛??
离线testdemo123
只看该作者 4楼 发表于: 2010-11-09
楼主解决没有啊。V4L2采集出来的yuv直接写入frambuffer,颜色不对,而且出现多个窗口。帮帮忙。。。
离线shelsu
只看该作者 5楼 发表于: 2011-03-21
请问,楼主,解决了这个问题吗?
我用QImage img((uchar*)buffers[0].start, WIDTH, HEIGHT, 16,0,0,QImage::IgnoreEndian);
离线shelsu
只看该作者 6楼 发表于: 2011-03-21

请问,楼主,解决了这个问题吗?
我用QImage img((uchar*)buffers[0].start, WIDTH, HEIGHT, 16,0,0,QImage::IgnoreEndian);
         pixmap->convertFromImage(img);
        lblImage->setPixmap(*pixmap);
可以显示图片,但是QLabel会显示两幅一模一样的图片。
采集格式为YUYV。
离线panqingliang
只看该作者 7楼 发表于: 2011-05-16
请问楼主,你采集的数据格式是不是YUV422,我想请教一下,你采集的YUV格式不需要转换成RGB格式吗???
快速回复
限100 字节
 
上一个 下一个