2017-04-26 58 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度,並在直方圖窗口中查看實時效果。

相關問題