下面的代码将大小为10个像素,以原始图像的四边的恒定边界。
对于颜色,我假设你想使用背景的平均灰度值,我已经从图像底部两行的平均值计算出来。对不起,有点硬编码,但显示了一般的方法,可以适应您的需求。
如果您将底部和右侧的边界值设置为0,则您甚至会看到对称的边框。
BORDER_TYPE的其他值是可能的,例如BORDER_DEFAULT,BORDER_REPLICATE,BORDER_WRAP。
import numpy as np
import cv2
im = cv2.imread('image.jpg')
row, col= im.shape[:2]
bottom= im[row-2:row, 0:col]
mean= cv2.mean(bottom)[0]
bordersize=10
border=cv2.copyMakeBorder(im, top=bordersize, bottom=bordersize, left=bordersize, right=bordersize, borderType= cv2.BORDER_CONSTANT, value=[mean,mean,mean])
cv2.imshow('image',im)
cv2.imshow('bottom',bottom)
cv2.imshow('border',border)
cv2.waitKey(0)
cv2.destroyAllWindows()