主要参考Python OPenCV 图片简单拼接 hconcat vconcat函数使用和python opencv 对图像边缘扩充。
图像展示时常常需要将多个图像拼接到一起显示,同时各个图像之间留有白色空隙。
对图像边缘扩充,或者叫边框填充,使用cv2.copyMakeBorder
函数。
参数含义为:
cv2.copyMakeBorder(cv2读入图像, 扩充宽度, 扩充宽度, 扩充宽度, 扩充宽度, cv2.BORDER_CONSTANT(常量扩充方式), value=[255, 255, 255](常量扩充值))
示例为
image_list = []
for ii, image_path in enumerate(image_path_list):
imii = cv2.imread(image_path)
a = cv2.copyMakeBorder(imii, 5, 5, 5, 5, cv2.BORDER_CONSTANT, value=[255, 255, 255])
image_list.append(a)
将相同尺寸的图像沿某一方向进行拼接,使用cv2.hconcat
函数(水平拼接)或cv2.vconcat
函数(垂直拼接)
import cv2
img =cv2.imread(file_path[i])
img=cv2.hconcat([img,img,img])#水平拼接
img=cv2.vconcat([img,img,img])#垂直拼接
示例为
img_hcat_lst = []
for jj in range(select_num // 10):
img = cv2.hconcat([select_images[10*jj+0], select_images[10*jj+1], select_images[10*jj+2], select_images[10*jj+3],
select_images[10*jj+4], select_images[10*jj+5], select_images[10*jj+6], select_images[10*jj+7],
select_images[10*jj+8], select_images[10*jj+9]])
img_hcat_lst.append(img)
img = cv2.vconcat([img_hcat_lst[0], img_hcat_lst[1], img_hcat_lst[2], img_hcat_lst[3], img_hcat_lst[4],
img_hcat_lst[5], img_hcat_lst[6], img_hcat_lst[7], img_hcat_lst[8], img_hcat_lst[9]])