2011-04-18 140 views
1

聽說在灰度圖片包含有8位顏色深度被存儲在每個像素的字節的第7位的數據和最後一點保持不變!所以我們可以使用所有像素的最後一位來存儲一些信息,這是真的嗎?灰度(每像素8位)在Java圖像像素處理

如果是這樣,數據如何解釋爲單個像素?我的意思是沒有紅色,藍色和綠色!那麼這些位是什麼意思?

如何計算圖像所有像素的平均值? 我更喜歡使用純java類而不是JAI或其他第三方。

更新1

BufferedImage image = ...; // loading image 
image.getRGB(i, j); 

的getRGB方法總是返回一個INT這比一個字節大!!! 我該怎麼辦?

回答

0

我的理解是,8位顏色深度意味着每像素8位(即一個字節),紅色,格倫和藍色都是這個值。例如灰度= 192意味着紅色= 192,綠色= 192,藍色= 192。沒有7位加上另一個1位。

AFAIK,你可以使用正常的平均值。但是我會用long的總和,並確保每一個字節是無符號即'b & 0xFF的

編輯:如果灰度是說128(或0x80的),我預計RGB爲128,128,128或0x808080。

+0

我已更新我的問題。 – ehsun7b 2011-04-18 17:29:05

+0

我已經更新了我的答案。那是你看到的嗎? – 2011-04-19 08:31:13

+0

我完全無法理解它!我怎樣才能得到單個像素的字節值? – ehsun7b 2011-04-19 18:37:57