Python:如何为图像添加边框以保持其纵横比

Python:如何为图像添加边框以保持其纵横比,python,imageview,resize,Python,Imageview,Resize,如何变换图像,使其成为肖像: 它将在侧面有边界,因此其纵横比为1:1,或者如果它是一个景观 它在顶部和底部都有边框?使用适当大小的numpy.zeros()创建一个新图像。然后将图像复制到新图像。使用此代码。输入您的图像名称。它在同一目录中写入名为result.jpg的图像 import cv2 import numpy as np img = cv2.imread("your_image.jpg") x,y=img.shape[:2] ma=max(x,y) blank = np.zero

如何变换图像,使其成为肖像:

它将在侧面有边界,因此其纵横比为1:1,或者如果它是一个景观


它在顶部和底部都有边框?

使用适当大小的
numpy.zeros()
创建一个新图像。然后将图像复制到新图像。

使用此代码。输入您的图像名称。它在同一目录中写入名为result.jpg的图像

import cv2
import numpy as np
img = cv2.imread("your_image.jpg")
x,y=img.shape[:2]
ma=max(x,y)
blank = np.zeros((ma,ma,3), np.uint8)
if y>=x:
    blank[(y-x)/2:(y-x)/2+x,0:y]=img
else:
    blank[0:x,(x-y)/2:(x-y)/2+y]=img
cv2.imshow('result', blank)
cv2.imwrite("result.jpg",blank)
cv2.waitKey(0)

谢谢你的帮助,但我正在iPhone上使用Pythonista,它不支持cv2。你知道其他的选择吗?不知道,但是按照这个算法来解决问题