首页 文章

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

提问于
浏览
1

我正在研究一个项目,我读取图像将数据加载到Mat数据类型 . 然后,我对它做了一些操作 .

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

cvtColor(img,out,CV_RGB2YCrCb);

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

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

1 回答

  • 1

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

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

相关问题