2017-04-26 57 views

回答

0

我不认为这有一个通用的答案,因为结果取决于不仅在R,G,B直方图上呈现的图像颜色。您需要:

  1. 计算直方图
  2. RGB转换到HSV
  3. 添加色相和它夹到角间隔
  4. 转换回RGB
  5. 计算直方图

我不使用photoshop,但我认为#1,#2,#4,#5应该在那里。 (在一些操纵brithness,gama等的过滤器中),但很难说如果添加到色相将被限制角度限制,或者它将把它作为周期值处理。在第一种情况下,你需要纠正的结果:

  1. 计算直方图
  2. 转换到HSV
  3. 克隆结果的第二图像B
  4. 加A.色相+ = pi/3和** B.hue- = 2 * pi/3

    A保持未夹紧的颜色,B被夹紧的颜色A转移到正确的色调位置。

  5. 所述的重新着色所有色调像素== PI2与一些指定的颜色

    pi2应该是工具夹持上述PI2色调的值,因此它可以是零,或PI2一步小于PI2 。这将允许稍后忽略钳位值。

  6. 在乙重新着色与色相== 0的所有像素与一些指定的颜色
  7. 转换A,B为RGB忽略指定
  8. 计算直方图颜色
  9. 合并A, B直方图

    只需将图形值一起添加即可。

现在你可以比较的直方图,以评估对一些样本图像的变化。

反正你可以做到这一切在任何编程语言。例如最需要的操作的存在于大多数图像处理和计算机视觉库等的OpenCV和增加色调仅有2嵌套for环加成和单if声明像:

for (y=0;y<ys;y++) 
for (x=0;x<xs;x++) 
    { 
    pixel[y][x].h+=pi2/3.0; 
    if (pixel[y][x].h>=pi2) 
    pixel[y][x].h-=pi2; 
    } 
粗的

HSV像素格式我以前不使用浮动值,以色相可以通过8位无符号整数来表示,例如在这种情况下,代码是这样:

for (y=0;y<ys;y++) 
for (x=0;x<xs;x++) 
    pixel[y][x].h=(pixel[y][x].h+(256/3))&255; 

如果需要implem耳鼻喉科的RGB/HSV转换看看这里:

我认为这可能吸引你:

0

从数学看它的视图2×π/ 3与PI点= 3.14你有2×PI这是的圆的“范围”。 由3 Devided这意味着你有一个圆的第三或简单地120℃

1

根据HSV成RGB转换公式(它的一部分):

enter image description here

移120°HUE将交换通道直方图:

  • + 120°,R - “G - >乙 - >ř
  •   -120°:乙< --R < --g < --B

要在GIMP中进行测试,请在Colors \ Info \ Histogram中打开图像直方图。
选择红色,绿色或蓝色通道以查看其直方图,然后打开对话框
Colors \ Hue-Saturation然后将色调调整+ - 120度,并在直方图窗口中查看实时效果。

相关问题