找回密码
 注册
搜索
查看: 988|回复: 3

[讨论] 请教大家一个 YCbCr转16位RGB图像的问题

[复制链接]
发表于 2007-5-6 16:26:29 | 显示全部楼层 |阅读模式
大家好,我在利用摄像头采集的YCbCr420数据转换成16位位图,将Y,Cb,Cr转换为R,G,B为:
R=(1000*Y + 1540*(Cr-128))/1000
G=(1000*Y - 459*(Cb-128) - 183*(Cr-128))/1000
B= (1000*Y + 1856*(Cb-128))/1000
做到这里我有问题不明白:这些RGB值是不是24位位图的RGB值,R,G,B值的取值范围是多少?如何转换成16位位图数据?谢谢!
发表于 2007-5-7 00:55:20 | 显示全部楼层
16位RGB通常是565的,即R和B各为5个bit,G为6个比特,加起来为16个比特。因此简单地将24位RGB中的RGB各8位CUT掉多余的位数就组合成565的格式。当然,如果有资源的话可以做抖动处理提高显示质量,没有的话。。。其实一般图像也没有什么问题.[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2007-5-7 17:17:29 | 显示全部楼层
谢谢captaincafe。
我在用EVC写应用程序,硬件使用S3C2440,现在遇到一个问题让我很费解:我处理的图像大小是352*288,如果我定义这样一个数组 unsigened chaer data[352*288],就会导致S3C2440死机,我一直不知道是什么原因。难道在EVC中不能定义大数组吗?
























司才
点评回复

使用道具 举报

发表于 2007-5-7 22:31:47 | 显示全部楼层
Sorry for replying late.

I don't know. I use malloc instead. And I don't have EVC in my hand now so I can't try. Just check where you allocate the array, if in local data section, then check the WinCE system and the compiler's reference for maximum length for local data section. Or you allocate it in global heap, then check if there is enough space for it. Just try.

Good luck
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-26 19:25 , Processed in 0.045423 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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