使用c ++的RGB到CMY颜色模型

时间:2013-04-08 05:39:47

标签: c++ image-processing colors cmyk

这是我们用于将RGB转换为相应CMY格式的公式:

C = 1 - ( R / 255 )
M = 1 - ( G / 255 )
Y = 1 - ( B / 255 )

我尝试将此公式应用于原始图像的RGB值后显示CMY图像,但我得到的结果值介于0和1之间。我不认为此范围可用于显示图像

如何将CMY值存储为数组,以便它们可用于显示图像? 我是否必须将0-1的范围缩放到0-255?

如果我必须缩放,为什么使用这个公式,我可以直接使用:

C = 255 - R
M = 255 - G
Y = 255 - B

2 个答案:

答案 0 :(得分:1)

#include <iostream>

using namespace std;

int main() {
    float C = 1.0f - (R / 255.0f);
    float M = 1.0f - (G / 255.0f);
    float Y = 1.0f - (B / 255.0f);

    float cmyArray[3] = {C, M, Y};
    return 0;
}

此代码会将CMY个变量存储为floating points,然后为要推入的floating points创建一个数组。在这种情况下,它首先将值CMY初始化为数组。

答案 1 :(得分:0)

像这样:http://liveworkspace.org/code/2rpyRF $ 2

如果您需要多个值,那么您可以这样解决第n个cmy组:n*3 + x其中x对于c为0,对于m为1,对于y为2。