我的任务是交换图像中的颜色。

将红色更改为蓝色
将蓝色更改为绿色
然后将绿色更改为红色

用户将输入一个图像,并且输出将显示带有交替颜色的图像。

我得到了将RGB转换为HSI的提示。但是仍然...我不知道该怎么做。
我应该采取什么步骤使这项任务成为可能?以下是将RGB转换为HSI的公式
谢谢。 :)

将RGB值转换为HSI值的方程式
假设R,G和B是颜色的红色,绿色和蓝色值。 HSI强度由公式给出

I = (R + G + B)/3.

现在令m为R,G和B中的最小值。颜色的HSI饱和度值由以下方程式给出
S = 1 - m/I    if I > 0, or
S = 0            if I = 0.

要将颜色的整体色调H转换为 Angular 度量,请使用以下公式:
H = cos-1[ (R - ½G - ½B)/√R² + G² + B² - RG - RB - GB ]            if G ≥ B, or
H = 360 - cos-1[ (R - ½G - ½B)/√R² + G² + B² - RG - RB - GB ]    if B > G,

逆余弦输出以度为单位。

最佳答案

由于颜色是度数和圆圈,因此您应该为色相增加120度。

关于c++ - 色彩处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15271623/

10-11 20:23