缩小光栅图像

信息处理 图像处理
2022-02-11 14:23:09

我有一个大小为 20x20 的光栅图像 (A),我想将其缩小到 10x10 (B) 的大小。

自然,在生成的图片 B 中,一个像素将代表 A 的 2x2 形状的 4 个像素。

如果不考虑 A 中的相邻像素(围绕 2x2 子集),是否可以给出如何计算 B 的像素值的规范答案?平均值,最大值还是其他?

3个回答

双线性是最广泛使用的方法。最近邻下采样算法是最快但最不准确的算法。

请注意,当您尝试将图像缩小一半时,双线性采样算法将变为平均值(如您所说的平均值):

x1[i/2][j/2] = (x[i][j] + x[i+1][j] + x[i][j+1] + x[i+1][j+1]) / 4;

我相信答案(双边很好)可以通过亮度量化(从 1 位黑白或真彩色)来平衡,并且您的图像非常小,因此标准统计数据不适用于此处。

像素的平均值通常不是整数,最后会被四舍五入。如果您坚持使用块,我建议取四个值的中位数:去掉四个中的 the和 the ,并取“最近”整数(或者取决于您是否想要更暗或更亮的图标),以及 剩余两个像素的平均值的或。我希望这可以限制在这种尺寸下可能没有用的“中间亮度边界”,并避免低量化图像上的灰色。我会通过“复制”角值来处理角(以限制在边界发生难看颜色变化的机会):你会得到42×2minmaxceilfloorminmax5像素值,然后标准中位数将是一个整数。

更复杂的处理可能会求助于平均块,10 个周围像素的权重较低。4×4

当然,效果取决于图像的形态:它是平坦的、平滑变化的还是随机的?

老实说,我怀疑这个提议不会显着改变标准显示器上的结果。

我也推荐双线性。

请注意,大多数图像编辑应用程序的默认设置是双三次插值。

双三次对大范围的缩放有意义:上/下,照片/矢量(比较在这里)。但是当按 2 的幂按比例缩小时,双线性会导致更少的失真。

在这张图片中,我使用 ImageMagick-scale选项中的双线性采样调整了“R”字符的一部分。(在这种情况下,原始图像大 2 次方,所以我们取平均值。)

ImageMagick 使用 -scale 缩小图像

这是使用 GIMP 的“立方”选项的双三次缩放。请注意如何引入了一些额外的明亮和黑暗“振铃”像素,这使得边缘看起来更清晰,但在仔细检查下看起来也有点脏。

GIMP 使用三次缩放缩小图像

使用 ImageMagick 的-geometryor-resize选项进行缩放时,效果会更加强烈。

ImageMagick 使用 -resize 缩小图像