用python将多张图片拼接成一张

该篇博客展示了如何利用OpenCV库在Python中将多张图片水平和垂直拼接在一起。通过指定每张图片的路径,使用cv2.imread()读取图片,然后使用cv2.resize()调整尺寸至1920x1080,接着使用np.hstack()和np.vstack()函数进行拼接。最终,将拼接后的图片保存为‘stack.jpg’。注意避免图片路径中出现中文以防止读取错误。
摘要由CSDN通过智能技术生成

将需要拼接的图片路径写在对应的img_path,比如有6张,通过hstack和vstack函数将图片拼接在一起。resize尺寸可以根据具体图片大小更改,拼接后的图片效果如下:

图片1图片2
图片3图片4
图片5图片6

代码如下:

import cv2
import numpy as np
img1_path = r"C:\Users\user\Desktop\picture\old\07724.jpg"
img2_path = r"C:\Users\user\Desktop\picture\new\07724.jpg"
img3_path = r"C:\Users\user\Desktop\picture\old\07371.jpg"
img4_path = r"C:\Users\user\Desktop\picture\new\07371.jpg"
img5_path = r"C:\Users\user\Desktop\picture\old\01514.jpg"
img6_path = r"C:\Users\user\Desktop\picture\new\01514.jpg"
img1 = cv2.imread(img1_path)    
# print(np.shape(img1)) # 或者用img1.shape   (h,w,c)   (1080,1920,3)
img1 = cv2.resize(img1,(1920,1080))
img2 = cv2.imread(img2_path)
img2 = cv2.resize(img2,(1920,1080))
img3 = cv2.imread(img3_path)
img3 = cv2.resize(img3,(1920,1080))   # resize(img,(w,h),interpolation=cv2.INTER_CUBIC)
img4 = cv2.imread(img4_path)
img4 = cv2.resize(img4,(1920,1080))
img5 = cv2.imread(img5_path)
img5 = cv2.resize(img5,(1920,1080))
img6 = cv2.imread(img6_path)
img6 = cv2.resize(img6,(1920,1080))

img_tmp1 = np.hstack((img1,img2))
print(np.shape(img_tmp1))
img_tmp2 = np.hstack((img3,img4))
print(np.shape(img_tmp2))
img_tmp3 = np.hstack((img5,img6))
print(np.shape(img_tmp3))
img_tmp4 = np.vstack((img_tmp1,img_tmp2))
img = np.vstack((img_tmp4,img_tmp3))
cv2.imwrite(r"C:\Users\user\Desktop\picture\stack.jpg",img)

注意cv2.read读取图片路径不能含有中文,不然会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天涯小才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值