OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2949|回复: 1

摄像头拍摄后,将照片传入pc端显示出现色彩不对以及断层等情况

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2015-12-21
在线时间
0 小时
发表于 2015-12-21 13:29:31 | 显示全部楼层 |阅读模式
5金钱
用的是战舰开发板,基础程序是例程里边的摄像机模块(不是照相机),在输入拍摄指令后,LCD停止刷新,此时利用LCD_ReadPoint()函数来读取LCD的色彩值(一直是按照RGB565理解的也不知道对不对),然后将该数据通过串口传输到pc端(一共是153600个byte,每两个表示一个像素的RGB),串口接收的数据也用各种调试工具测试过,没有丢包的现象。在pc端(C#)把该数据转成RGB888并用Graphics显示出来,其中转换RGB用的是如下代码:
[mw_shl_code=c,true]rr = (byte)(Photodata1[2 * k] & 0xf8); gg = (byte)(Photodata1[2 * k] << 5 | ((Photodata1[2 * k + 1] & 0xe0) >> 3)); bb = (byte)(Photodata1[2 * k + 1] << 3);[/mw_shl_code]
该值通过bmp.SetPixel()函数描76800个点组成图像。
但是最后显示出来首先颜色不对,其次出现了类似断层的情况
以下是显示图:


原图大概是这样:


总之是很奇怪。试了很多次,效果都是一样的,我自己觉得传输中应该没有问题。现在认为可能是(1)用LCD读取的时候读到的值不对;(2)RGB转换的时候出错;(3)pc端显示的时候大小和位置设置不对。别的问题也想不出来了,希望大神帮忙分析一下是什么原因,怎么样能解决,多谢多谢。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1815
金钱
1815
注册时间
2011-10-9
在线时间
230 小时
发表于 2015-12-21 14:48:56 | 显示全部楼层
拿个纸 图一点黑 其他全白 拍摄 然后看数据 呵  看到底哪里错了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 12:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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