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