2014-12-26 2 views
2

에 대한 binarysation의 규칙은 무엇 나는 TYPE_3BYTE_BGR하는 TYPE_3BYTE_BGR에서 BufferedImage를 변환하려면이 코드는 java.awt.image.BufferedImage

BufferedImage image = ImageIO.read(new File("toolbar.png")); 
BufferedImage grayImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_BINARY); 
Graphics graphics = grayImage.getGraphics(); 
graphics.drawImage(image, 0, 0, null); 
graphics.dispose(); 

를 사용할 수 있습니다. 예를 들어

입력 :

enter image description here

출력 :

enter image description here

I가 컬러 픽셀 (A)에 기초하여 백 화소 또는 흑 화소로 설정되어 있는지 알고 계산 규칙. 무엇이며, 그것을 조정하기 위해 무엇을 할 수 있습니까? 사전에 도움을 주셔서 감사합니다.

답변

1

위의 코드 에서처럼 변환은 입력 이미지 (RGB)에 대상 (이진 색인 색)의 색이 더 많기 때문에 암시 적 변환이 발생합니다.

이 2 진 색상으로 변환하는 "규칙"은 단순히 "입력에서 가장 가까운 대상에서 색상을 선택하십시오"라고 할 수 있습니다. 유일한 색은 흑백이기 때문에 R, G 및 B의 평균이 50 % 미만인 모든 색이 검은 색이되고 나머지 색은 흰색이됩니다. 직접 "조정"할 방법이 없습니다.

그러나 더 좋은 이미지를 얻으려면 임계 값을 직접 제어하거나 입력에서 계산할 수 있습니다. 예를 들어 this blog을 참조하십시오.

+0

답변 해 주셔서 감사합니다. "R, G 및 B의 평균이 50 % 미만"이라고 말하면 무엇을 의미합니까? 우리는 BGR24 유형을 사용한다고 가정합니다. 그것은 "(R + G 값 + B 값)/3 <255/2"을 의미합니까? – Gearon

+0

@upma 예, 정확하게. – haraldK

+0

도움 주셔서 감사합니다. – Gearon