我听说 8位颜色深度的灰度图像中的数据存储在每个像素的字节的前7位中最后一点保持完整!所以我们可以使用所有像素的最后一位来存储一些信息,这是真的吗?
如果是这样,如何在单个像素中解释数据?我的意思是没有红色,蓝色和绿色!那些比特是什么意思呢?
如何计算图像所有像素的平均值? 我更喜欢使用不是 JAI 的纯java类或其他第三方。
更新1
BufferedImage image = ...; // loading image
image.getRGB(i, j);
getRGB方法总是返回一个大于一个字节的 int ! 我该怎么办?
答案 0 :(得分:0)
我的理解是8位颜色深度意味着每像素有8位(即一个字节),而红色,蓝色和蓝色都是这个值。例如greyscale = 192表示红色= 192,绿色= 192,蓝色= 192。没有7位加上另外1位。
AFAIK,您可以使用正常平均值。但是,我会使用long
作为和,并确保每个字节都是无符号的,即`b& 0xff的
编辑:如果灰度等级为128(或0x80),我预计RGB为128,128,128或0x808080。