【问题标题】:Why pixels have not the same weight?为什么像素的权重不一样?
【发布时间】:2021-07-10 18:25:14
【问题描述】:

我不明白: 如果我们考虑值 00001111 (15) 是一个字节和一个 RGB 像素 (220,180,155),无论像素的值如何,它都是 3 个字节。 那么为什么当我减小像素值(使用位移操作或其他)时 我的图像不是 = 像素数 x 3。当我说“像素数”时,我的意思是“大于全黑的像素数”。

机制如何运作?它是按位计算的,然后除以八作为平均值吗? 如果我有一张 3MB 的图片并且我做了一个位移(每个 3 RGB 通道上的因子 2)我找到了一张 300 KB 的图片。

不要告诉我 90% 的像素都变成了全黑。
谢谢。

【问题讨论】:

    标签: encoding compression python-imaging-library jpeg pixel


    【解决方案1】:

    如果将所有像素值向右移动 2 个位置,您将获得大约 1/4 的红色阴影,大约 1/4 的绿色和蓝色。这意味着总体而言,您将拥有更少的颜色。这意味着您的图像可能少于 256 种颜色,这意味着它可以是 palettised。这也意味着它可能会更好地压缩,因为更少的唯一序列将有更多的重复。


    您可以通过多种方式检查您的图像是否已调色:

    • 用 PIL 打开它并检查image.mode 是否包含P
    • 在其上运行exiftool 并检查Colour Type 是否为Palette
    • 使用magick identify -verbose YOURIMAGE在其上运行ImageMagick

    您可以使用 ImageMagick 计算图像中独特颜色的数量:

    magick identify -format %k YOURIMAGE
    

    或者您可以在 Python 中使用this answer 的最后一部分(标题为“更新”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2020-03-01
      相关资源
      最近更新 更多