调整图像大小而不改变图像的内部形状

时间:2017-10-19 21:07:41

标签: python python-2.7 cv2

我希望在不失去原有质量的情况下调整图像大小。例如,我有10个不同大小的多个2D images,带有白色背景。我想让它们的尺寸相同,为50 * 50。这样符号应该保持在同一个地方并在外面添加额外的白色像素。 我使用cv2.resize(template[1], (25, 45), 255),但我的符号分散了。我不想放松质量。我也看过这篇文章resize image canvas to maintain square aspect ratio in Python, OpenCv,但没有找到合适的

1 个答案:

答案 0 :(得分:0)

这是此问题的一个很好的参考链接,并使用我发布的模块。

https://pypi.python.org/pypi/python-resize-image

但您要查找的语法如下:

resize_contain

这会调整图像的大小,使其适合指定的区域,保持比例而不会裁剪(与background-size相同的行为:包含)。

语法示例:

resize_contain(image, size, validate=True)

调整图像大小以使其适合指定区域,保持比例并且不会裁剪。它与css background-size:包含属性的行为相同。创建白色背景边框。

将图像调整到最小,使其包含在200x100矩形中,即源图像和目标图像之间的比率。

from PIL import Image
from resizeimage import resizeimage

fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_contain(img, [200, 100])
img.save('test-image-contain.jpeg', img.format)
fd_img.close()