2011-03-29 150 views
6

我想改变图像中像素的值,为此我需要将图像存储为矩阵。我怎样才能完成这项工作?请指导。图像处理

回答

6
BufferedImage image = ImageIO.read(..); 
image.setRGB(x, y, rgb); 

检查的BufferedImage

1

的文档使用image.setRGB极为缓慢。

可以使用Catalano Framework

实施例:

FastBitmap fb = new FastBitmap(bufferedImage); 

int x = fb.getRed(0,0); 

//If you prefer to retrieve the matrix you can do too. 
int[][][] image = new int[fb.getHeight][fb.getWidth][3]; 
fb.toArrayRGB(image); 
1

首先读取的图像转换成一个BufferedImage。

BufferedImage image = ImageIO.read(new File("...")); 

然后创建像2D阵列这样在结构基体和设置RGB:

for(int i = 0; i < image.getWidth(); i++){ 
    for(int j = 0; j < image.getHeight(); j++){ 
    image.setRGB(i, j, rgb); 
    } 
} 
0
  • 图片数据的2D表示(像素信息)

  • 2D装置X & y方向。在图像的情况下,这些方向通常被视为行&列

  • 要改变的像素值,我们必须得到它的位置在这些行和获取的像素位置列

  • 就像是班主任解决未知的学生,他的坐姿(例如:第2个替补3人)

  • 这样我们就必须解决其行像素和列位置