在不改变图像颜色的情况下改变opencv中的颜色空间

时间:2014-07-21 19:08:09

标签: opencv color-space

我正在开展一个项目,在那里我读取图像,将数据加载到Mat数据类型中。然后,我对它做了一些操作。

我的所有操作都是在假设颜色空间为RGB(BGR as opencv以这种方式存储)的情况下完成的。一切都很好。我正在尝试将输出图像转换为YUV格式。但是当我使用以下命令从BGR2YUV转换输出图像时,我发现生成的图像颜色完全改变了。

cvtColor(img,out,CV_RGB2YCrCb); 

例如,我的输出RGB图像为绿色。当我将其转换为YUV格式并显示生成的图像时,我发现它是蓝色而不是绿色。 我想要一种转换方式,以便输出也变为绿色。

如何在不改变图像颜色的情况下将颜色空间从RGB更改为YUV?

1 个答案:

答案 0 :(得分:1)

图像的颜色没有改变,只是编码。 如果将颜色转换为YUV,然后使用imshow(),则假定颜色仍为RGB,因此显示错误。 如果您有YUV图像并且想要显示它,则首先必须将其转换回RGB。

当您询问“如何在不改变图像颜色的情况下将色彩空间从RGB更改为YUV?”你基本上是在说“如何在不进行颜色转换的情况下进行颜色转换?”这当然是不可能的。