经过数小时的搜索,我依靠您的专业知识!请帮忙!
基本上,我试图从灰度图像中的单个像素访问数据。
这是我正在谈论的图像的链接:- 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]);
}
}
}
所以使用它我可以访问单个像素。我非常开心!但是......我现在想比较相邻的像素,看看它们是否比其他像素异常亮。我这样做是因为我想从图片中去除噪音。有什么建议吗?
PS 我尝试使用 RescaleOp 并更改了所有像素的亮度因子,然后再次将它们相乘,但这只是使图像无法识别。我真的很困惑如何消除噪音!
我期待着阅读您的回复。