网络编程
位置:首页>> 网络编程>> Python编程>> numpy数组做图片拼接的实现(concatenate、vstack、hstack)

numpy数组做图片拼接的实现(concatenate、vstack、hstack)

作者:hi 你好。  发布时间:2022-10-23 15:21:21 

标签:numpy,数组,图片拼接

两种方法拼接


#img = np.vstack((img, img2))  # vstack按垂直方向,hstack按水平方向
img = np.concatenate((img, img2), axis=0)  # axis=0 按垂直方向,axis=1 按水平方向

统一图片大小,保证数组维度一致避免拼接失败。 把图片全部调整成第一张图的宽高


def img_size(image_names,width, height):
 for i in image_names:
   img = cv2.imread(os.path.join(img_path, i))
   img_resize = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC)
   cv2.imwrite(os.path.join(img_path, i), img_resize)
   print(os.path.join(img_path, i))

完整案例,拼接文件夹中的所有图片


import cv2
import os
import numpy as np

def img_size(image_names,width, height):
 for i in image_names:
   img = cv2.imread(os.path.join(img_path, i))
   img_resize = cv2.resize(img, (width, height), interpolation=cv2.INTER_CUBIC)
   cv2.imwrite(os.path.join(img_path, i), img_resize)
   print(os.path.join(img_path, i))

if __name__ == '__main__':
 img_path = r'F:\studytest'
 image_names = [name for name in os.listdir(img_path) if os.path.splitext(name)[1] == ".jpg"]
 img1 = cv2.imread(os.path.join(img_path, image_names[0]))
 width, height = img1.shape[:2][::-1]
 img_size(image_names,width, height)
 img = img1

for i in range(1,len(image_names)):
   img_page = image_names[i]
   img2 = cv2.imread(os.path.join(img_path, img_page))
   #img = np.vstack((img, img2))  # vstack按垂直方向,hstack按水平方向
   img = np.concatenate((img, img2), axis=0)  # axis=0 按垂直方向,axis=1 按水平方向
 cv2.imwrite(os.path.join(img_path,"res.jpg"), img)
 # cv2.imshow("img",img)
 # cv2.waitKey()
``

来源:https://blog.csdn.net/songrps/article/details/102938548

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com