如何在不增加python噪声的情况下调整图像大小?

问题描述 投票:0回答:3

我有一个图像,并且我希望调整该图像的大小并展开而不破坏它。

图像:

Image work

图像尺寸:

  • w = 41
  • h = 43

我想要将图像尺寸调整为:

  • w = 2000x
  • h = 2100

我尝试了所有已知方法:

  1. 带有PIL.Image:
    from PIL import Image
    path = "image.png"
    w, h = 2000, 2100
    img = Image.open(path)
    img = img.resize((w, h), Image.ANTIALIAS)
    img.save("re_image.png", "PNG")
    
  2. 使用cv2:
    import cv2
    path = "image.png"
    w, h = 2000, 2100
    img = cv2.imread(path)
    img = cv2.resize(img, (w, h), interpolation = cv2.INTER_AREA)
    cv2.imwrite("re_image.png", img)
    

结果是:

Result Image

python image opencv python-imaging-library image-resizing
3个回答
2
投票

请勿使用ANTIALIAS过滤器。由于要保留边缘的清晰度,只需使用NEAREST滤镜。如果未将任何参数传递给resample

Image.resize参数,则此过滤器为默认设置
Image.resize

这给出了预期的结果

“期望的结果”“ >>


0
投票

对于您的特定情况,它是二进制图像,我认为您想保持边缘清晰。然后,我建议在您的openCV实现中使用标志cv2.INTER_NEAREST。您可以检查文档中提供的不同插值类型的效果:img = img.resize((w, h))


-1
投票

我创建了一个简单的函数。请给我您的意见。

© www.soinside.com 2019 - 2024. All rights reserved.