摄像头采集数据,然后用stm32上传到电脑,上位机编写了一个简单的UDP接收程序,然后实时显示图像数据,图像边缘模糊,整体呈现绿 {MOD},如图
确认焦距调好,在开发板液晶屏上显示很清晰。视频数据上传到电脑上,(摄像头采集的像素是16位的)经过转换
B = (char)(color>>11)&(0x1f);
G = (char)(color>>3)&(0x3f);
R = (char)color&(0x1f);
把16位 {MOD}转换成32位 {MOD}。我交换过R、B的位置,甚至对R、G、B都取反,可还是不行,图像依然模糊不清,边缘化严重。不知道怎么回事,蛋疼啊,有大侠指点我么?
---------------------------------
解决了,晚上试了好长时间,上面16位的像素转换成24位的数据不是十分正确导致以上问题,正确转换的方法:
R = ((char)(color>>11)&(0x1f))<<1;
G = ((char)(color>>3)&(0x3f))<<1;
B = ((char)color&(0x1f))<<1;
这样转换后效果好多了,接近真实的颜 {MOD}。谢谢原子哥!
---------------------------------
摄像头数据正常了,待会传一张视频的截图,但是由遇到了新的问题,电脑上的UDP接收程序明显的能看到刷屏的痕迹,(大概1秒1.5帧),旁边的金山卫士显示网速289.3KB/s,我算了一下,摄像头传来一帧数据是320x240x2Byte=150KB,也就是最多1秒收到不到两帧数据。我们平时看网络视屏时,网速不到100KB/s也能比较流畅的观看。我用LWIP一次传输644字节数据(也就是一行数据),感觉就算一次传个1KB多的数据,速度也不能提高多少。网络视频的数据都是压缩了或是经过其他什么的处理了吗?怎么样才能让我的视屏数据显得较为流畅?
---------------------------------
当然是压缩了的。。。。
一周热门 更多>