如何在java中获得与matlab中类似的每个像素的强度值?

如何在java中获得与matlab中类似的每个像素的强度值?,java,image,Java,Image,我需要java代码来获得图像中每个像素的强度值(不是rgb值)。使用matlab工具,我可以得到每个像素的强度值,范围从0到255。当我给出512*512的图像时,我得到512*512的强度值(范围从0到255)。是否有任何代码可以在java中合并相同的代码。下面的代码以二进制形式给出rgb值,因此对于白色,它给出-1,而在matlab中,相同的值将由255表示。java中是否有内置函数可以这样做 BufferedImage image = ImageIO.read(new File("E:\\

我需要java代码来获得图像中每个像素的强度值(不是rgb值)。使用matlab工具,我可以得到每个像素的强度值,范围从0到255。当我给出512*512的图像时,我得到512*512的强度值(范围从0到255)。是否有任何代码可以在java中合并相同的代码。下面的代码以二进制形式给出rgb值,因此对于白色,它给出-1,而在matlab中,相同的值将由255表示。java中是否有内置函数可以这样做

BufferedImage image = ImageIO.read(new File("E:\\C2C\\Image.jpg"));
  for(int i = 0; i < 704; i++)
    for(int j = 0; j < 604; j++)
    {
        img[i][j] = image.getRGB(i, j);
        System.out.println(image.getRGB(i,j));
    }
buffereImage image=ImageIO.read(新文件(“E:\\C2C\\image.jpg”);
对于(int i=0;i<704;i++)
对于(int j=0;j<604;j++)
{
img[i][j]=image.getRGB(i,j);
System.out.println(image.getRGB(i,j));
}

你离得到你想要的东西还有一步之遥

目前,您可以通过以下方式获得像素的rgb值:

int rgb = BufferedImage.getRGB(i ,j);
这会给你一个整数

使用此rgb值构造颜色对象:

Color c = new Color(rgb);
int red = c.getRed();           //get intensity of red (0 - 255)
int green = c.getGreen();    //get intensity of green (0 - 255)
int blue = c.getBlue();        //gey intensity of blue (0 - 255)

看起来你想让我们为你写些代码。虽然许多用户愿意为陷入困境的程序员编写代码,但他们通常只在海报已经试图自己解决问题时才提供帮助。演示这项工作的一个好方法是包括您迄今为止编写的代码、示例输入(如果有)、预期输出和实际获得的输出(控制台输出、回溯等)。你提供的细节越多,你可能得到的答案就越多。检查和。如何在Matlab中定义强度值?您可以只取R、G和B值的平均值,因为RGB值已经应用了一条曲线,但Matlab可能会应用另一条曲线;你需要弄清楚。从你的问题中,我想你知道如何得到红色、绿色和蓝色的值。只需计算强度:
intgray=(r+g+b)/3
您没有显示任何为白色提供
-1
的代码(除非您的意思是显示RGB值,并且alpha通道值也是FF,因为RGB位于
int
的较低24位)。您刚刚展示了将图像中的RGB值复制到一个(大概)
int[]
中的代码。如何将RGB
int
拆分为其R、G和B分量?你在哪里计算RGB值的平均值?@ErwinBolwidt你通过问更多的问题回答了我的问题。非常感谢。