我听说灰度图像中的数据与8位颜色深度存储在每个像素的前7位字节中,最后一位则保持原样!所以我们可以用所有像素的最后一点存储一些信息,是真的吗?
如果是这样,如何以单个像素来解释数据?我的意思是没有红色,蓝色和绿色!那么这些片段意味着什么呢?
如何计算图像所有像素的平均值?我更喜欢使用纯java类,而不是、JAI、或其他第三方。
更新1
BufferedImage image = ...; // loading image
image.getRGB(i, j);getRGB方法总是返回一个大于一个字节的int!我该怎么办?
发布于 2011-04-18 17:01:59
我的理解是,8位颜色深度意味着每像素有8位(即一个字节),而红色、绿色和蓝色都是这个值。greyscale=192的意思是Red=192,Green=192,Blue=192。没有7位加另外1位。
AFAIK,你可以用一个正常的平均值。但是,我将使用long作为和,并确保每个字节都没有签名,即`b & 0xff
编辑:如果灰度是128 (或0x80),我希望RGB是128,128或0x808080。
https://stackoverflow.com/questions/5706232
复制相似问题