Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中读取和提取图像像素并进行比较_Java_Image Processing_Image Segmentation - Fatal编程技术网

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

如何在java中读取和提取图像像素并进行比较,java,image-processing,image-segmentation,Java,Image Processing,Image Segmentation,我想读取RGB图像并提取图像像素。然后我想比较每个像素,检查图像其他部分的匹配像素。如果该像素与原始像素匹配,则在java中,匹配的像素应替换为红色和黄色 我从Java论坛和图像处理网站上搜索了很多。我仍然没有找到完美的解决方案 给出一些像素提取器和像素匹配器示例,以便进一步进行 以下getRGBA方法将提取图像img位置(x,y)处的RGBA阵列: private final int ALPHA = 24; private final int RED = 16; private final i

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

我从Java论坛和图像处理网站上搜索了很多。我仍然没有找到完美的解决方案


给出一些像素提取器和像素匹配器示例,以便进一步进行

以下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<img.getWidth();i++)
    {
        for (int j=0;j<img.getHeight();j++)
        {
           int[] color1 =  getRGBA(img,i,j);
           if (originalPixel[0] == color1[0] && originalPixel[1] == color1[1] && originalPixel[2] == color1[2] && originalPixel[3] == color1[3]) {
               img.setRGB(i, j,Color.red.getRGB());
           } 
           else {
               img.setRGB(i, j,Color.yellow.getRGB());
           }
        }
    }
int[]originalPixel=getRGBA(img,0,0);
对于(int i=0;i这个马文正是你想要的。

这可能会有帮助