2011-08-31 4 views
4

RGB 형식으로 색상이 지정 되었다면 다른 RGB와 충분히 다른지 프로그래밍 방식으로 결정할 수있는 방법이 있습니까?"충분히 다른"RGB를 찾는 방법은 무엇입니까?

말하자면, 색상이 서로 30 % 이상 떨어져 있는지 테스트하고 싶습니다. 어떻게해야합니까? 또는 다르게 말해서, 어떻게 다른 색과 충분히 다른 색을 생성 할 수 있습니까?

+1

색상의 차이에 대해 이야기 할 때 좀 더 구체적으로 설명 할 수 있습니까? RGB 만이 색상에 대해 생각할 수있는 유일한 방법은 아닙니다. 예를 들어 HSV에 대한 질문의 프레임을 어떻게 재구성합니까? – Oded

+1

"충분히 다른"무엇입니까? 30 %는 의미가 없습니다. 그렇다면 대상 색상의 RGB 값을 테스트하고 각 구성 요소가 색상보다 30 % 이상 또는 더 적은지 확인하십시오. 귀하의 질문에서 당신이하고자하는 것을 정확히 말하기는 어렵지만, 이와 같은 컬러 휠이 도움이 될 수 있습니다 - http : //kuler.adobe.com/ – arunkumar

답변

-1

RGB 값을 점으로 처리하고 지오메트리의 거리 수식을 사용하십시오. 30 %의 차이를하고자하는 경우에는

distance = ((R2-R1)^2 + (G2-G1)^2 + (B2-B1)^2)^.5 
distance > minimun value 

는 최소값 = 원점으로부터 point_1 * 0.3의 거리를 확인 즉., 0.3 ((R1)^2 + (G1)^2 + (B1)^2)^.5

+0

이것이 옳은지 여부에 관계없이이 답변은 멋지다 :) 지금 시험해 보겠습니다. – JAM

+1

CIE76이/shoehorned with RGB에 적용된 것처럼 보입니까 ?? 그렇게 할 수 있니? – fvu

+0

기본 색상 (RGB로)은 겹치지 않으므로 3D 벡터 공간으로 만들어야합니다. 당신이하는 모든 일에서 상호 직각 성을 생각하십시오. –

7

인간의 광학 처리가 끔찍하게 엉망이기 때문에 이것은 지뢰밭이다. 하지만 당신이 묻는 것은 colour difference입니다 -이 페이지는 두 색상 사이의 "차이"를 나타내는 다양한 값을 계산하는 데 사용할 수있는 다양한 수식을 제공합니다.

[업데이트] 그리고 여기에 online calculator이 있습니다.이 링크는 복잡하고 링크로 인해 URL이 변경되지 않으므로 링크하기가 어렵지만 주변을 클릭하면 의미가 있습니다.)

+0

이 링크는 훌륭합니다! – Shahbaz

1

나는 몇 시간 전에 색다른 문제와 같은 문제가 있다고 생각한다. wikipediahttp : //en.wikipedia.org/wiki/HSL_and_HSV에서 HSV (또는 HSL)에 대해 읽습니다. RGB -> HSV를 변형 할 때 H 값은 색상이고, S와 V는 다른 특성입니다.

색상 사이의 거리를 알고 싶다면 H 값만 측정하면됩니다. 360도 표기법으로 변환하면 30 도가 매우 다른 색상을 줄 정도로 충분합니다.

RGB 색상으로 알고 싶다면 R, G 및 B 값을 사용하면 색상이 아니라 칙칙한 "색상"이 될 수 있습니다.

+1

가끔은 색조가 다르지만 채도가 다르기 때문에 분홍색과 빨강 같이 색이 다릅니다. 따라서 색조만으로는 충분하지 않습니다. – Shahbaz

2

이것은 매우 주관적입니다. 그러나 개인적으로 가장 좋은 기회는 hue-saturation-lightness (HSL 또는 HSV)를 사용하여 값의 차이에서 값을 얻는 것입니다. 같은 예를 들어 뭔가 :

value = a*abs(H1-H2)+b*abs(S1-S2)+c*abs(L1-L2); 

및 시도, 시행 착오와, 당신의 인간의 판단처럼 색상이 동일한 금액을 차별화 최고의 a, bc 상수를 찾을 수 있습니다. 선형 회귀를 알고있는 경우 할당 된 차이가있는 일부 샘플 색상을 사용할 수 있으며 선형 회귀가있는 a, bc 값을 얻을 수 있습니다.

보다 적절한 수식 색상 자체보다는 상수의 함수로서 a, bc 2 개 대신 예컨대 abs 더 중요 값의 전력의 차이를 포함 할 수있다.

관련 문제