我的任务是在图像中互换颜色。
变红为蓝变蓝变绿变绿变红
用户将输入一幅图像,输出将显示一幅具有互换颜色的图像。
我得到了将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转换为角度度量,请使用以下公式:
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,
其中反余弦输出以度为单位。
发布于 2013-03-07 12:52:38
因为颜色是以度为单位的,所以你应该在色调上增加120度。
发布于 2013-03-07 12:58:17
将最大色调值的1/3添加到每个像素的H通道。如果使用8U深度,则添加255/3;如果使用32F深度,则添加0.333 (但如果溢出超过1,则减去1)
发布于 2013-03-07 14:06:31
您可以尝试hsv彩色rappresentation:
http://en.wikipedia.org/wiki/HSL_and_HSV
你可以在“色调和色度”下找到如何转换
最大G均值在1~3之间,最大蓝值在3~5之间,最大R值在5~6或0~1之间!最后,你乘以60,得到一个类似度的值
https://stackoverflow.com/questions/15271623
复制相似问题