【问题标题】:RGB to CMY color model using c++使用c ++的RGB到CMY颜色模型
【发布时间】:2013-03-30 02:45:11
【问题描述】:

这是我们用来将 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

【问题讨论】:

  • 制作一个数组并将值放入其中?
  • 存储在数组中是什么意思? RGB值是如何存储在代码中的?
  • 另外,使用整数不会得到 介于 01 之间的值。它会给你或者01
  • 你需要知道你想要的十进制精度,因为它们在 0 和 1 之间是无限的。
  • 老实说,这是最好的方法,你很好。

标签: c++ image-processing colors cmyk


【解决方案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,然后为要推入的3 个floating points 创建一个数组。在这种情况下,它以@987654327 的值开始@、MY 已初始化到数组中。

【讨论】:

    【解决方案2】:

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

    如果您需要许多值,那么您可以这样处理第 n 个 cmy 组:n*3 + x 其中 x 是 0 代表 c,1 代表 m,2 代表 y。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 2011-04-27
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多