如何在java中读取和提取图像像素并进行比较

我想读取RGB图像并想要提取图像像素。 然后我想比较每个像素以检查图像其他部分中的任何匹配像素。 如果该像素与原始像素匹配,则匹配的像素应在java中替换为红色和黄色。

我从javaforums和图像处理网站上搜索了很多。 我还没有完美的解决方案。

给出一些像素提取器和像素匹配器示例以继续进行。

以下getRGBA方法将在图像img的位置(x,y)处提取RGBA数组:

private final int ALPHA = 24; private final int RED = 16; private final int GREEN = 8; private final int BLUE = 0; public int[] getRGBA(BufferedImage img, int x, int y) { int[] color = new int[4]; color[0]=getColor(img, x,y,RED); color[1]=getColor(img, x,y,GREEN); color[2]=getColor(img, x,y,BLUE); color[3]=getColor(img, x,y,ALPHA); return color; } public int getColor(int x, int y, int color) { int value=img.getRGBA(x, y) >> color & 0xff; return value; } 

像素匹配器? 也许你只是想运行一个循环..考虑到你将(0,0)像素作为原始像素,你可以做以下事情:

  int[] originalPixel = getRGBA(img,0,0); for (int i=0;i 

这个Marvin 算法完全符合您的要求。