gpt4 book ai didi

python - PIL : scale image while maintaing highest possible quality

转载 作者:行者123 更新时间:2023-12-01 05:40:01 26 4
gpt4 key购买 nike

我使用 PIL 将宽度范围从 600 像素到 2400 像素的图像缩放到大约 200 像素宽。我已经合并了 Image.ANTIALIAS 并设置 quality=95 以尝试获得尽可能最高质量的图像。

但是,与原始图像相比,缩小后的图像质量仍然很差。

这是我正在使用的代码:

# Open the original image
fp = urllib.urlopen(image_path)
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
im = im.convert('RGB')

# Resize the image
resized_image = ImageOps.fit(im, size, Image.ANTIALIAS)

# Save the image
resized_image_object = cStringIO.StringIO()
resized_image.save(resized_image_object, image_type, quality=95)

按照这些比例缩放图像同时尽可能保留图像质量的最佳方法是什么?

我应该指出,我的主要目标是获得尽可能最高质量的图像。我并不真正关心这个过程在时间上的效率如何。

最佳答案

如果您无法使用 PIL 中的 native 调整大小选项获得结果,您可以通过自己的调整大小函数运行它们来手动计算调整大小像素值。 (据我所知)有三种主要的调整图像大小的算法:

  • 最近邻居
  • 双线性插值
  • 双三次插值

最后一个将以最长的计算时间生成最高质量的图像。为此,请想象较小图像的像素布局,然后将其放大以匹配较大图像,并考虑新像素位置相对于旧像素位置的位置。然后,对于每个新像素,取 16 个最近像素(其周围 4x4 半径)的平均值,并将其用作新值。

小图像中每个像素的结果值将是大图像的平滑但清晰的调整大小版本。

如需进一步阅读,请查看此处:Wikipedia - Bicubic interpolation

关于python - PIL : scale image while maintaing highest possible quality,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17841598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com