
大手给看看这个用r0 = 1402*(cr0-128)/1000+y0;g0 = (- 344*(cb0-128) - 714*(cr0-128))/1000+y0;b0 = 1772*(cb0-128)/1000+y0;转换完得到的实时图像,这是什么原因引起的?
------解决方案--------------------
1.yuv有n多种格式
采样: 4:4:4 4:2:2 4:2:0 4:1:1
排列:YVYU UYVY YV12 打包 等务必确定原始的数组是什么样的格式
yuv色彩空间: https://zh.wikipedia.org/zh/YUV
2.rbg 也有N多种 ;24位 16色 32色 等
3. LED可能只支持某些rbg格式
我之前有过是 yuyv格式的原始数据(摄像头) 转化成为 RBG24位.
最好是早某一点(4点) 按位(字节)查看,一次找出 y u v的值,看颜色对不对,再找出转换后的值,再对比颜色是否正确.
------解决方案--------------------
9650配置输出422还是420?
------解决方案--------------------
好吧,我以前做过的是 原始数据yuv的,lcd只支持rgb16的.还和排列的顺序有关.
建议弄张纯色的图片试试,先确定到底在那个环节出错了.
尽量想办法屏蔽掉其他环节的影响.打印一下每个步骤的某几个像素的值(RGB YUV)才好判断.
------解决方案--------------------
建议这样调试下:
都减128显然不合适,如果cr0<128,就变负了,不减试一下
你的lcd是16位,为什么Conv_YCbCr_Rgb返回U32?
显示一张图片,看下LCD驱动是否正确。
把cr0,cb0都设置为0,看下黑白图像效果。
把cr0,cb0互换,看是否二者搞反了。