簡體   English   中英

Java中的GrayScale(每像素8位)圖像像素處理

[英]GrayScale (8bit per pixel) Image Pixel Manipulation in Java

我聽說,色深為8位的 灰度圖像中的數據存儲在每個像素字節的前7位中,最后一位保持不變! 這樣我們就可以使用所有像素的最后一位來存儲一些信息,這是真的嗎?

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

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

更新1

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

getRGB方法始終返回一個大於一個字節的整數 !!! 我該怎么辦?

我的理解是8位色深意味着每個像素有8位(即1個字節),而Red,Gren和Blue都是這個值。 例如,灰度= 192表示紅色= 192,綠色= 192,藍色= 192。 沒有7位加另外1位。

AFAIK,您只能使用正常平均值。 但是,我將使用long作為總和,並確保每個字節都是無符號的,即`b&0xff

編輯:如果灰度是說128(或0x80),我希望RGB是128,128,128或0x808080。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM