yuv数据怎样改变其亮度和对比度
由于项目需求,需要控制视频播放的亮度和对比度,解码后得到的数据是yuv格式的,看过一些资料,很多都是将yuv转为rgb,对rgb进行处理,再转为yuv。觉得这种方法比较不方便。按理说,yuv中y是代表亮度的,对y进行修改应该就可以了。
做过一些实验,将y变小确实可以将视频变暗,但是将y变大,虽然可以变量,某些色彩不能正常显示,如某些原来就比较亮的地方会变黑色。不知是什么原因。
怎样对yuv数据修改,才能正确改变图像的亮度和饱和度了?希望有经验者,给点建议!谢谢!
[解决办法]
这个问题我认为应该先明确YUV分别表示意义。然后根据定义变换就好了
[解决办法]
进行clip操作,将大于255的值设置为255即可。
[解决办法]
增加Y后有些地方变黑的原因应该是 你使用的BYTE型数据存储,有些Y变大后超出了255,你没有对它的范围作约束,然后略大于255的数据相当于取了低字节进行存储,所以变成了一个略大于0得数。
[解决办法]
使用拉伸直方图的算法,效果很好