使用opencv以ycbcr格式拍摄并保存图像

时间:2014-03-13 01:19:16

标签: c++ opencv

我们有一个Matlab程序,以YCbCr格式从摄像机拍摄图像,然后像RGB图像一样保存,R值是图像的Y值,G值是图像的Cb值,B值是图像的Cr值。有没有办法在C ++ openCV中复制这个过程?

1 个答案:

答案 0 :(得分:1)

OpenCV可以read来自摄像头的图像,是的,你可以在OpenCV中复制这个过程。您所要做的就是确保每个通道都在可接受的范围内(8位为0..255)和文件save

关于值的范围,Cb和Cr可以是负的,但G和B可以不是。您可以通过shifting来解决这个问题 - 在保存时将Cb和Cr添加128(并在加载时执行相反操作) - 或者通过巧妙地确定哪些通道已签名和未签名。

关于保存,图像保存代码假设图像是RGB,并按原样编码R,G,B分量。如果您的图像是YCbCr,则Y将被编码为R,Cb将被编码为G,而Cr将被编码为B.图像在其他程序中看起来是错误的,但这是预期的。