2017-05-09 13 views
1

픽셀로 구성된 클러스터의 중심을 어떻게 계산합니까?픽셀 클러스터에서 중심 찾기

픽셀을 RED, BLUE 및 GREEN 값 (예 : pixel(116 133 55))으로 나타냅니다.

센트 로이드는 클러스터의 인스턴스의 평균해야하지만 는 어떻게 픽셀 사이의 평균을 계산 할 수 있습니까?

가 [I는 각 색의 평균을 계산하도록 시도 (중심 [ "RED를"= sum_red_pixel_values ​​/ 화소 수 등)하지만, 잘못된 결과 제공 ]

가 어떠한 방식으로 도움이된다면을 유클리드 거리 함수를 사용하고 있습니다.

+0

결과가 잘못되었음을 어떻게 알 수 있습니까? –

+0

@MalcolmMcLean 나는 centroid를이 방법으로 정의하고 K-Means를 사용하여 이미지를 분할했다. 중도의 재 할당 후에 클러스터가 미쳐 버립니다. –

+1

각 구성 요소의 평균 (즉, 색상)을 사용하는 것이 올바른 방법입니다. 코드 나 세부 사항없이 알고리즘에 어떤 문제가 있는지 말할 수는 없지만 그 논리는 잘못해서는 안됩니다. – jdehesa

답변

1

sum_red_pixel_values/number of pixels은 평균 적색 강도를 제공합니다. 중심점을 원하면 모든 픽셀의 평균 x 및 y 위치를 픽셀 강도로 가중치를 찾아야합니다.

centroid.x = sum(pixel.red * pixel.x)/sum(pixel.red) 
centroid.y = sum(pixel.red * pixel.y)/sum(pixel.red) 

여기서 sum은 모든 픽셀 이상입니다.

빨강 녹색과 파랑을 각각 따로 계산 한 다음 평균을 구할 수 있지만, 평균값을 원할 경우 평균값 (광도가 필요한 경우 가중치 평균)을 계산하면 각 빨강 녹색 채널과 파란색 채널이 평균보다 효율적입니다. 픽셀을 먼저 입력하고 을 입력 한 다음은이를 기반으로 중심을 계산합니다.