opencv-python 图像最简单拼接

本文介绍如何使用Python通过OpenCV库实现根据预设坐标截取图片,并对截图进行处理,如添加元素,然后将处理后的图像无缝拼回原图的过程。具体步骤包括读取原图、截图、编辑和拼接,适用于自动化图像处理任务。

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

使用场景:根据固定左上、右下、坐标点进行标准矩形截图,对截图进行你想要的处理,再拼接回去。

很多时候我们需要使用代码自动进行图像的某一部分处理,处理之后还要再拼接回来,为了避免手动重复工作

原图如下:

在这里插入图片描述

截图后:

在这里插入图片描述

截图后处理:粉色的小星星是我自己画的

在这里插入图片描述

最后拼接回去

在这里插入图片描述

实现代码:

截图部分:

import cv2


def cv_show(neme, img):
    # 调整宽高(再次运行也只会加载你调整后的宽高)
    # cv2.namedWindow(neme, cv2.WINDOW_NORMAL)
    cv2.imshow(neme, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


# 读取图像
img = cv2.imread("T.jpg")

# 第一张 左上 右下 坐标点
# 565 7
# 696 177
x1, y1, x2, y2 = 565, 7, 696, 177

# 截图 y1 y2 x1 x2
image1 = img[y1:y2, x1:x2]

# 存储 截图 左上 右下 坐标
with open("xy.txt", "w") as f:
    f.write("{} {} {} {} ".format(x1, y1, x2, y2))

cv_show("1", image1)

cv2.imwrite("T0.jpg", image1)
print("图像裁剪完成")

拼接截图:

import cv2
import numpy as np
import os

def cv_show(neme, img):
    # cv2.namedWindow(neme, cv2.WINDOW_NORMAL)
    cv2.imshow(neme, img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


# 读取原图的大小
img = cv2.imread("T.jpg")

# 读取截图
img1 = cv2.imread("T1.jpg")

# 创建一个纯黑的大图
mage = np.zeros((img.shape[0], img.shape[1], 3), np.uint8)

# 读取截图的坐标
with open("xy.txt", "r") as f:
    data = f.read()
    # print(data)

# 默认空格分割
x1, y1, x2, y2 = data.split()
# print(x1, y1, x2, y2)

# # 将要拼接的两张图像覆盖到大图上
# 截图顺序y1 y2 x1 x2
mage[:] = img
mage[int(y1):int(y2), int(x1):int(x2)] = img1

cv_show("s", mage)
# 保存图像
cv2.imwrite('T2.jpg', mage)
# 删除xy.txt
os.remove("xy.txt")
print("图像拼接完成")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

默执_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值