2 liuran416 liuran416 于 2015.06.13 13:51 提问

如何用Java 的ImageIO获取8位灰度图像的像素值

用Java 的ImageIO获取8位灰度图像的像素值与ToolkitImage获取的像素值不一样

3个回答

songhtao
songhtao   Rxr 2015.06.13 15:47

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i for(int j=miny;j //System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}
}

}

}

liuran416
liuran416 这种方法对24位的图像是对的,但对于8位灰度图像得出的灰度值跟matlab得出的不一样,不知道是为什么
2 年多之前 回复
songhtao
songhtao   Rxr 2015.06.13 15:47

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i for(int j=miny;j //System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}
}

}

}

liuran416
liuran416 这种方法对24位的图像是对的,但对于8位灰度图像得出的灰度值跟matlab得出的不一样,不知道是为什么
2 年多之前 回复
helihongzhizhuo
helihongzhizhuo   Rxr 2015.06.13 15:50
liuran416
liuran416 这种方法对24位的图像是对的,但对于8位灰度图像得出的灰度值跟matlab得出的不一样,不知道是为什么
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片