在Java Android.All中,我想将32位RGBA图像转换为8位灰度图像,还有一些代码尝试将RGBA (4通道)转换为灰度(4通道)。
有人能帮助或告诉我如何将RGBA (4通道)图像转换为灰度(1通道)图像吗?
发布于 2020-03-04 10:02:20
首先,当转换为8位灰度时,RGBA图像的A通道将被忽略.此时,您将丢失alpha通道的信息。
可以通过服务器方式将RGB图像转换为灰度。最简单的方法是只使用三个通道中的一个(每个通道已经有8位),并从这个通道创建一个8位图像。您将看到产生的灰度图像之间的显著差异。你的结论可能是,忽视两个渠道是不明智的。
这可能导致这样的想法,即每个像素的灰度信息必须依赖于所有三个通道(R、G和B)。
方法是将灰度值计算为R、G和B的平均值:
grayscale = (R+G+B)/3更好的方法是将其计算为加权和:
grayscale = 0.21*R + 0.72*G + 0.07*B试一试,看看结果和它们之间的差异。
https://stackoverflow.com/questions/60523023
复制相似问题