2012-06-29 10 views
5

많은 조명 조건에서 이미지의 RGB 값을 가져 오려고합니다. 어떻게 든 중립적 인 시나리오를 얻으려면 미리 정의 된 일부 이미지의 RGB 값을 사용하여 RGB 값을 표준화하고 싶습니다.RGB 값을 기준 RGB 값으로 정규화하는 방법

설명해 드리겠습니다. 6 개의 미리 정의 된 이미지가 있고 정확한 평균 RGB 값을 알고 있습니다. 이제 다른 조명 조건에서 알 수없는 이미지를 찍을 것입니다. 같은 조건에서 미리 정의 된 6 개의 이미지를 찍을 것입니다. 이제 내 목표는 미리 정의 된 이미지의 알려진 참조 rgb 값을 카메라 그림에서 계산 된 값과 비교하여 정규화 수식을 정의하는 것입니다. 이 정규화 매개 변수를 사용하여 알 수없는 그림의 RGB 값을 보정합니다. 그래서 조명 상태와 관계없이 알 수없는 그림에서 평균 RGB 값을 중립적으로 얻을 수 있습니다.

어떻게 이것을 자바로 쉽게 할 수 있습니까?

답변

0

조명 상황이 다르면 선형 RGB 보정 만 있으면됩니다. 각 채널에 대해 파생 된 상수로 R, G, B 값을 간단히 곱하십시오.

참조 색이 하나뿐이면 참조 색이 곱 해져서 캡처 된 색으로 나눕니다. 예를 들어, 기준 색이 (240,200,120)이지만 이미지가 250,190,150으로 측정 된 경우 - 빨간색은 240/250, 녹색은 200/190, 파란색은 120/150을 곱합니다. 이미지의 모든 픽셀에 대해 동일한 상수를 사용하십시오.

일치시킬 여러 색상을 사용하면 수정 계수를 평균하여 단일 상수 세트에 도달해야합니다. 예를 들어 (200,150,20)의 참조가 있고 멀리 떨어져있을 수있는 파란색 양을 두 배로 늘리려는 측정 값 (190,140,10)이있는 경우 더 밝은 색상에 더 큰 가중치를 부여해야합니다. 가장 간단한 방법은 모든 기준값을 합산하고 측정 된 값의 합계로 나누는 것입니다.

+0

안녕하세요, 귀하의 방법을 사용하고 있습니다. 이제 RGB 값 대신 HSI 색 공간을 사용하고 강도 매트릭스 만 정규화합니다. –

+0

@P basak - 다른 말로하면, 당신은 본질적으로 내가 제안한 것을하고 있지만 YUV 대신 HSI를 사용하고 있습니다.그래서 당신은 단순히 밝기 채널과 매우 비슷한 어떤 것의 정규화를 원했습니다! – trumpetlicks

+0

@ 마크 - 그래서 근본적으로 제안하는 것은 각 채널의 평균을 계산 한 다음 그 평균을 새 이미지의 정규화 요소로 사용하는 것입니다. – trumpetlicks

1

RGB를 정상적으로 정규화하기 위해이 작업을 수행하는 이유는 이미지를 비슷한 밝기로 정규화하려고했기 때문입니다. 왜냐하면 당신의 목표가 단순히 밝기라면, 나는 밝기 성분을 가진 색상 표준으로 변환하고, 밝기 성분만을 정규화하기 때문입니다.

거기에서 다른 색상 구성 요소 표준으로 새 이미지를 가져 와서 원할 경우 RGB로 다시 변환 할 수 있습니다.

단계 (하지만 자바에서) : 당신이 algorithm described here를 사용하여 밝기에 정상화를 구현할 수 있습니다 이런 식으로

1) Convert - RGBImage --> YUVImage 
2) Normalize RGBImage using the Y component 
3) Convert - Normalized(YUVImage) --> Normalized(RGBImage) 

.

ELSE를 사용하면 각 채널의 평균을 평균화하고 각 채널을 개별적으로 계산하는 새 이미지의 정규화 계수의 분자로 사용할 수 있습니다.

+0

안녕하세요 저는 진정으로 rgb를 정규화하고 싶습니다. –

+0

교정과 같은 것을 원합니다. 참조 영상과의 편차를 계산하고 그 편차를 미지의 이미지에 적용하여 중립 값을 얻고 싶습니다. –

+0

HSI 색 공간으로 변환되었습니다. 이제 참조로 인덱스를 정규화하는 방법을 찾고 있습니다. –