天嵌 ARM开发社区

 找回密码
 注册
查看: 7960|回复: 15

摄像头采集数据的格式

[复制链接]
jsjs2002 发表于 2012-7-18 15:50:12 | 显示全部楼层 |阅读模式
     请问下版主1.OV9650摄像头采集的图像格式只能是rgb565么??可不可以设置啊??我在网上找了个rgb565转rgb888的程序 并用QT显示,但是图像颜色混乱只有个轮廓,能不能帮我看看这个转换程序是不是有问题呢??
void Rgb565ToRgb888(int w,int h,unsigned char *rgb,unsigned char *rgb888)
{    unsigned long i;    unsigned short *rgb565;    rgb565=(unsigned short *)rgb;    for(i=0;i<w*h;i++)    {       rgb888[3*i+2]=((*(rgb565)&0xf800>>11)<<3);       rgb888[3*i+0]=((*(rgb565)&0x07e0>>5)<<2);       rgb888[3*i+1]=((*(rgb565)&0x001f>>0)<<3);       rgb565++;    }}  Rgb565ToRgb888(480,272,(unsigned char *)buf,(unsigned char *)&rgb888);  image888=new QImage(rgb888,480,272,QImage::Format_RGB888);  image888->loadFromData((unsigned char*)rgb888,WIDTH*HEIGHT*3);  ui->window->setPixmap(QPixmap::fromImage(*image888,Qt::AutoColor));2.H264编码只支持YUV格式的数据么??rgb565可以直接编码么???
不言DXH 发表于 2012-7-18 16:21:00 | 显示全部楼层
rgb888[3*i+0]=((*(rgb565)&0x07e0>>5)<<2);
rgb888[3*i+1]=((*(rgb565)&0x001f>>0)<<3);
难道RGB888的存放顺序是R B G?你用下面的试试...(我表示我也不太清楚,试试吧)
rgb888[3*i+1]=((*(rgb565)&0x07e0>>5)<<2);
rgb888[3*i+0]=((*(rgb565)&0x001f>>0)<<3);
 楼主| jsjs2002 发表于 2012-7-18 17:01:34 | 显示全部楼层
呵呵,这个可以试试呢。但是关于摄像头采集的数据格式可以设置么??、
不言DXH 发表于 2012-7-18 17:18:29 | 显示全部楼层
可以设置,只是你要看看驱动支持哪些格式...可能有些OV9650支持的格式而驱动中没有支持。
TQ-lkp 发表于 2012-7-18 18:31:20 | 显示全部楼层
楼主可以看下我们提供的摄像头源码
 楼主| jsjs2002 发表于 2012-7-18 18:32:34 | 显示全部楼层
应该是的呢,看来只能重写OV9650的驱动或者使用USB摄像头了。这个RGB565转RGB888的函数有没有问题呢,显示还是不正常呢。:D
ww110052181 发表于 2012-7-18 18:37:11 | 显示全部楼层
没必要吧你的RGB565转成RGB88来显示吧,如果是中星微的z301p类的摄像头的话就直接吧采集到的饿JPG转成RGB流就可以显示了:)
ww110052181 发表于 2012-7-18 18:38:15 | 显示全部楼层
如果要实现的太多的话在一个进程里面的话,就会有很大的延迟
 楼主| jsjs2002 发表于 2012-7-18 18:43:23 | 显示全部楼层
这个可以开多线程嘛,很简单的。
 楼主| jsjs2002 发表于 2012-7-18 18:47:35 | 显示全部楼层
恩呢 我想用H264编码,好像只支持YUV格式。国嵌那个项目里有rgb888转YUV格式的,你知道我多纠结了,:'(
不言DXH 发表于 2012-7-18 19:10:04 | 显示全部楼层
你的程序是有问题的!for(i=0;i<w*h;i++)应该改为:for(i=0;i<w*h*3;i+=3)
不言DXH 发表于 2012-7-18 19:10:42 | 显示全部楼层
不言DXH 发表于 2012-7-18 19:10
你的程序是有问题的!for(i=0;i

,,,
貌似不是~~~~:L
 楼主| jsjs2002 发表于 2012-7-18 19:12:34 | 显示全部楼层
呵呵,这里好像是没问题的哦。问题是不是出在左移后的值需要修正么??
不言DXH 发表于 2012-7-18 19:14:41 | 显示全部楼层
本帖最后由 不言DXH 于 2012-7-18 19:18 编辑

OV9650支持YUV 4:2:2格式,驱动中不知道支持不.另外,你看看你所用的LCD支持RGB888格式不,好像我的3.5寸的LCD不支持。
 楼主| jsjs2002 发表于 2012-7-18 19:18:11 | 显示全部楼层
天嵌提供i的驱动好像没这个功能,看来得换思路了。纠结呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-14 15:10 , Processed in 1.031250 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表