的Python:如何添加边框的图像,以便他们保持宽高比

问题描述:

我怎么能够把一个图片,这样,如果它是一个人像: 的Python:如何添加边框的图像,以便他们保持宽高比

它会得到边界上侧,使得其长宽比为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) 
+0

感谢您的帮助,但我在不支持cv2的iPhone上使用Pythonista。你知道任何替代品吗? – stacph

+0

不知道,但按照该算法来解决问题 –

+0

好的,谢谢! – stacph