2012-03-16 2 views
1

이미지 파일에서 다수 색상을 찾고 스윙 프레임의 배경으로 설정하려고합니다. 어떻게해야합니까?Java의 이미지 파일에서 다수 색상을 찾을 수있는 방법이 있습니까?

+0

어떤 이미지 파일입니까? 이미지 파일을 읽는 방법을 알고 있습니까? – Lucas

+0

모든 종류의 파일 jpeg, png, gif 또는 기타. 당신이 취할 수있는 모든 예제 이미지 파일. –

+0

이미지 파일에서 가장 많이 사용되는 색상을 결정하는 방법 http://sourceforge.net/projects/jiu/forums/forum/51534/topic/3883065 또는 http://www.daniweb.com/software-development/java/threads/335957 –

답변

1

이미지에서 RGB 백분율 값을 추출해야합니다. 일부 알고리즘은 RGB 값을 제공합니다. 또한 전체 이미지를 일부 부품 (예 : 9 각형)으로 나눈 다음 RGB 값을 가져와 이미지에서 더 많은 색상을 얻을 수 있어야합니다. this 일 수 있습니다.

1

이미지의 각 픽셀을 가로 지르고 색상을 지정하면됩니다. 발견 된 각 색상에 대해 카운터를 증가시킵니다.

1

모두 효율성이 떨어집니다. 말 그대로 이미지의 모든 RGB 값을 읽고 모드를 찾을 수 있지만 시간이 오래 걸립니다.

대신 이미지를 부분으로 나누면 100 개의 사각형이 나옵니다. 우리는 각 사각형의 중앙에있는 값을 취합니다. 가장 많이 나타나는 부분은 가장 일반적인 색상 일 것입니다. 예, 이것은 일종의 위험합니다. 왜냐하면 이미지가 방금 평가 한 모든 픽셀에서 사용되는 색상이 적게 들기 때문입니다. 할 수있는 가장 좋은 일은 우선 범위를 가지므로 유사한 (0,2,0) 및 (0,0,0)와 같은 rgb를 얻는다면 간단하게 그것들을 동일하게 취급하십시오.

다음으로해야 할 일은 이미지의 약 10 %를 샘플로 사용하는 것입니다. 그것은 당신이 적절한 대답을 얻을 가능성이 매우 높습니다. 따라서 이미지가 500 픽셀 인 경우 50px를 샘플로 사용하여 그림과 같이 고르게 분배하십시오.

전체 이미지를 확인하는 데 매우 오랜 시간이 걸릴 것이므로 정확성과 속도 사이에서 상충 관계에 있습니다.

관련 문제