cv2多图拼接

本文介绍了如何使用Python的numpy和opencv库,编写一个脚本来将多张图片合成一张大图,适合初学者理解图像处理基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 刚好需要写个脚本实现个小功能,把多张图片合成一张大图,用到的第三方库有numpy和opencv

import numpy as np
import cv2


def merge_image(image_list, x_num=2, y_num=2):
    image_num = len(image_list)
    frame = np.zeros((720, 1080), dtype=np.uint8)
    new_image_list = []
    x_image_list = []
   
    if image_num%2 == 0:
         frame = np.zeros((720, 1080), dtype=np.uint8)
         image = cv2.imread("10005001_1618537982.jpg")
         for image in image_list:
             frame = cv2.resize(image, (1080, 720), interpolation=cv2.INTER_AREA) # 每张图片的大小可自行resize
             new_image_list.append(frame)
         for x in range(x_num):
             htich = np.hstack([i for i in new_image_list[y_num*x:y_num*(x+1)]])
             x_image_list.append(htich)
         vtich = np.vstack(x_image_list)
    else: # 在这里如果图片列表是单数的话,你可以填充一个空白图片
        pass
    return vtich


if __name__ == "__main__":

    image = cv2.imread("test.jpg")
    image_list = [image,image,image,image]  # 这里存放你的图片帧列表
    big_image = merge_image(image_list,2,2)  # x_num为行数、y_num为列数,x与y的积为图像列表的长度
    cv2.imwrite("merge_image.jpg",big_image)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

blog_1103

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

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

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

打赏作者

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

抵扣说明:

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

余额充值