2012-01-12 4 views
3

노드가 계층 적으로 정의 된 네트워크가 있습니다 (UN SITC coding 통해). 내 응용 프로그램에서 각 노드는 증가하는 계층 적 특이성 (예를 들어, 제품 7431 참조)을 식별하는 4 개의 숫자를 가지고 있지만, 정의한 네트워크는 단순한 계층 구조가 아닙니다. 내가하려고하는 것은 노드를 계층 적으로 색칠하는 것이지만 내 네트워크 계산에 따라 노드를 레이아웃하고 어느 정도 일치하는지 확인하는 것입니다.색상 노드 계층 적 알고리즘

일반적으로 말하자면, 시각적으로 뚜렷한 N 색상 팔레트를 생성하는 방법을 찾고 있습니다. N 색상 팔레트는 가능한 한 작고 덜 효율적입니다 (N이 작을수록 덜 효과적입니다). 그런 다음 하위 팔레트로 나눕니다. 원하는 계층 적 깊이에 도달합니다.

특히, 첫 번째 숫자에 10 개의 기본 색상을 선택하고 두 번째 숫자가 취할 수있는 가능한 값의 수인 K < = 10 색의 팔레트를 생성하는 것을 의미합니다. 네 번째 숫자는 계층 적 정보에 따라 모든 노드가 채워지는 것입니다. 그린은 하나의 유형이며, 그 안에는 녹색의 특정 음영이 시각적 인 유사성에 해당하는 노드의 특정 패밀리를 정의합니다.

구현하려는 색상 속성이 "분석적"인 것처럼 보입니다. 단순히 HSV/HSL 체계에서 색조 매개 변수를 정기적으로 분할하여이 작업을 수행하거나 더 좋은 방법이 있습니까?

파이썬으로 구현할 예정이지만 알고리즘은 기본적으로 언어에 구애받지 않아야합니다.

+0

촬영 대상을 보여주는 더 작은 시각적 예를 게시 할 수 있습니까? – Richard

답변

0

유사성을 기반으로 한 순서를 결정하기 위해 다양한 이미지의 스펙트럼 출력을 비교하는 비슷한 문제 (가능성이있는 것의 반대 일 가능성이 있음)를 다뤘습니다.

색상의 RGB 큐브로 수개월을 들여서, 나는 포기하고 HSV로 옮겼습니다. 다시는 돌아 보지 않았습니다. 색상을 정의한 색조를 확인한 다음이를 기반으로 순열을 적용하여 두 가지 다소 노란 색상이 아닌 오히려 도끼를 시작한 다음 k 배수를 더하여 다음과 같이 표현할 수 있습니다.

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

내에서 '값'과 '채도'를 소량으로 세분화하여 사용할 수있는 색상 수를 늘리십시오.

시스템간에 변환이 끝나면 colorsys을 사용했지만 문제가 없습니다.