2011-03-29 216 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人)

  • 這樣我們就必須解決其行像素和列位置