我有一个图像,并且我希望调整该图像的大小并展开而不破坏它。
图像:
图像尺寸:
我想要将图像尺寸调整为:
我尝试了所有已知方法:
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")
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)
结果是:
请勿使用ANTIALIAS
过滤器。由于要保留边缘的清晰度,只需使用NEAREST
滤镜。如果未将任何参数传递给resample
Image.resize
参数,则此过滤器为默认设置Image.resize
这给出了预期的结果
“ >>
对于您的特定情况,它是二进制图像,我认为您想保持边缘清晰。然后,我建议在您的openCV实现中使用标志cv2.INTER_NEAREST。您可以检查文档中提供的不同插值类型的效果:img = img.resize((w, h))
我创建了一个简单的函数。请给我您的意见。