2012-01-12 39 views
3

我有一個網絡,其中節點分層次定義(通過UN SITC coding)。在我的應用程序中,每個節點都有四個具有遞增層次特性的標識數字(例如,請參閱產品7431),但我定義的網絡不僅僅是明顯的層級結構。我想要做的是按層次對節點進行着色,但根據我的網絡計算將它們排列出來,看看兩者的重合程度。算法到顏色節點分層

一般來說,我正在尋找一種方法來生成N個顏色調色板,它們儘可能在視覺上與一個和另一個顯然不同(顯然N效果越來越差),然後將它們分成子調色板,直到我達到了期望的分層深度。

具體來說,這意味着要爲第一個數字選擇10個基色,併爲其中的每個生成K < = 10個顏色的調色板,其中K是第二個數字可以採用的可能值的數量,以及第三個和第四位數字,直到我根據其分層信息結束所有節點的着色。綠色是一種類型,在其內部的某些綠色色調定義了與視覺相似的某些節點族。

看起來像「Analagous」是我想要實現的顏色屬性。只需在HSV/HSL方案中定期分解色調參數即可完成此操作,還是有更好的方法?

我將在Python中實現它,但任何算法應基本上是語言不可知的。

+0

您是否可以發佈一個較小的視覺示例來顯示您正在拍攝的內容? – Richard 2012-12-08 16:17:47

回答

0

我解決了一個類似的問題(可能與您正在做的相反),我在比較各種圖像的光譜輸出以確定基於相似性的排序。

在經歷了數週的RGB彩色立方體擺弄之後,我放棄了並轉移到單純皰疹病毒 - 並從未回頭。我會識別那些定義顏色的色相,然後根據這些顏色進行排列,這樣就不會有兩種有點黃的顏色 - 相反,您會開始斧頭然後添加k的倍數,以便您擁有像這樣的東西:

x is red 
x+k is yellow 
x+2k is green 
... so forth 

其中,我將細分和可能通過少量排列'值'和'飽和度'來增加可用顏色的數量。

如果你最終在系統之間轉換,我用colorsys沒有問題。