시간 및 시간 검색 후, 나는 당신의 전문 기술에 의존하고 있습니다! 도와주세요!두 픽셀 사이의 "밝기 차이"
기본적으로 그레이 스케일 이미지의 개별 픽셀에서 데이터에 액세스하려고합니다.
여기에 내가 말하고있는 이미지에 대한 링크가 있습니다. - http://s14.postimg.org/ak092kza5/WORKS.jpg?noCache=1382913709 (모두 검은 색이어야합니다. 색상을 알아볼 수는 있지만 색상을 알아볼 수는 없습니다. 나는 소음을 제거 할 수있다!)
public static void handlesinglepixel(int x, int y, int pixel) {
int alpha = (pixel >> 24) & 0xff;
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel) & 0xff;
// Deal with the pixel as necessary...
}
public static void handlepixels(Image img, int x, int y, int w, int h) {
int[] pixels = new int[w * h];
PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
try {
pg.grabPixels();
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
return;
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
System.err.println("image fetch aborted or errored");
return;
}
for (int j = 0; j < h; j++) {
for (int i = 0; i < w; i++) {
handlesinglepixel(x + i, y + j, pixels[j * w + i]);
}
}
}
그래서 이것을 사용하여 나는 개별 픽셀에 접근 할 수있다. 나는 정말로 행복하다! 하지만 ... 이제 인접 픽셀을 비교하여 다른 픽셀보다 비정상적으로 가벼운 지 확인하려고합니다. 나는 그림에서 잡음을 제거하기를 원하기 때문에 이것을하고있다. 어떤 충고?
P.S RescaleOp를 사용하여 모든 픽셀의 밝기 값을 변경하고 다시 곱 해봤지만 이미지를 인식 할 수 없게 만들었습니다. 나는 정말로 소음을 제거하는 방법에 관해서 붙이게된다!
귀하의 답변을 기다리겠습니다.
1) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. 2) 예를 들어 이미지를 얻는 한 가지 방법은 [이 답변] (http://stackoverflow.com/a/19209651/418556)에 표시된 이미지에 핫 링크하는 것입니다. –
@AndrewThompson 방금 이미지를 추가하려했는데 충분한 담당자가 없다고 말합니다 ... – BenjaminFranklin
imageshack (또는 어디든지) 링크로 링크를 업로드하십시오. –