2018-06-24-opencv-image-merge

titlecategorylayouttagsdate
opencv中如何合并多张图片到一张图片中
python
post
opencv
2018-6-24 18:00:24

今天遇到一个问题,需要将多张图片放到一张中,并且还需要添加padding。如下图所示: opencv merge

首先介绍思路:

  • 将待合成的图片尺寸resize到一致
  • 根据待合成图片的长宽确定合并的起始结束点
  • 输出图片
path='./img/'
imgs1=['picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg']
imgs2=['picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg','picasso.jpg']
# Load origin image
img=cv2.imread('./origin.png')

#合成的初始位置与边界padding=50
#合成的图片之间padding=5
#待合成图片长宽都为200
h,w=200,200
for i in range(len(imgs1)):
	temp=cv2.resize(cv2.imread(path+imgs1[i]),(h,w))
	cv2.putText(temp, imgs1[i].split('.')[0], (10, 180), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255, 255, 255), 1)
	img[50:h+50,(i*w+i*5)+50:((i+1)*w+i*5)+50]=temp
for i in range(len(imgs2)):
	temp=cv2.resize(cv2.imread(path+imgs2[i]),(h,w))
	cv2.putText(temp, imgs2[i].split('.')[0], (10, 180), cv2.FONT_HERSHEY_SIMPLEX, 0.4, (255, 255, 255), 1)
	img[h+50+5:2*h+50+5,(i*w+i*5)+50:((i+1)*w+i*5)+50]=temp

#load and write image
cv2.imwrite('result.jpg',img)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值