我的任务是交换图像中的颜色。
将红色更改为蓝色
将蓝色更改为绿色
然后将绿色更改为红色
用户将输入一个图像,并且输出将显示带有交替颜色的图像。
我得到了将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/