彩色

2011-05-25 111 views
9

圖像進行排序我正在尋找一種方式來圖像作爲在下面的截圖進行排序:彩色

http://www.pixolution.de/sites/LargeImages_en.html

我已經看了關於計算器此主題的所有線程,但沒有提出解決方案甚至接近給我上面的圖像。

途徑我試着:

  1. 對於每個圖像,構建RGB顏色直方圖以降序發生
  2. 的順序爲每個直方圖,從黑色(R計算距離:0,G: 0,b:0)如下:

    for color in image_histogram: 
        total_distance += color.percentage_of_image * distance(BLACK_RGB, color.rgb) 
    

然後通過它們的距離

排序圖像

我希望類似顏色分佈的圖像最終會有相似的距離,並通過顏色進行視覺排序。情況並非如此,它似乎有點工作,但不像上面的圖片。

對於距離函數,我嘗試了歐氏距離,hsv排序(h-> s-> v)甚至Lab距離排序。沒有任何幫助

如果有人有更好的方法,我很想知道!

+0

這沒有標記爲python,但在中間的循環肯定看起來像python。 – 2011-05-25 23:55:21

+0

在使用HTML5和javascript的PHP和canvas中,您可以獲得圖像的平均RGB顏色。從那裏你可以將所有的值加起來併除以3以得到圖像的亮度。您應該沿y軸排列所有值,從亮到暗,並沿着x軸執行從r到g到b的色調移動。只是一個想法,在完成我目前的項目後,我可能會爲此工作,感謝這個想法! – Vap0r 2011-05-26 00:02:34

+0

感謝Vap0r,這是一個更清晰的例子,我正在尋找: http://www.pixolution.de/sites/LargeImages_en.html – user257543 2011-05-26 00:37:06

回答

0

使用它們之間的距離而不是它們和黑色之間的相似顏色,並使用圖像中的平均顏色。

+0

我認爲中位數顏色,而不是平均值會更好,否則一些邊緣案件將看起來不合適。除非這是他想要的,當然很難看出他的榜樣。 – Lepidosteus 2011-05-26 00:00:15

+0

尋找主色。此鏈接建議使用一個「平滑」直方圖最大點: http://stackoverflow.com/questions/5205244/get-average-color-from-bmp ,但我不明白他們所描述的方法平滑它 – user257543 2011-05-26 00:03:42

+0

鏈接中的建議方法是通過對像素進行平均而獲得的簡單模糊。我相信鏈接的問題回答你的查詢順便說一句。 – FinnNk 2011-06-01 12:53:00

2

我從來沒有做過這樣的事情我自己,所以原諒我,如果下面的做法是幼稚:

  • 對於每一個圖像,熬下來到1個RGB值求和R,G,B所有像素的值,併除以總像素數。將組件標準化爲[0..1]
  • 根據RGB值在2D顏色空間中繪製圖像。這可以是3D(r,g,b)向量變換的2D投影。
+0

是的,我也在考慮這些方面。他描述的是一個投影到1D。示例照片看起來像是投影到2D。我正在玩這樣的東西:'x = h * s','y = v * s'作爲投影。但可能會有更好的。 – andrewdski 2011-05-26 00:06:29

+0

有趣,我會給兩個方法一個鏡頭 – user257543 2011-05-28 20:19:13

1

你可以轉換爲HSV和排序由H

色調是大多數人們想到他們認爲「顏色」時

請參閱:RGB to HSV in PHP