PythonOpenCV随机粘贴图像

import cv2

import numpy as np

import random

读取两个图像

image1 = cv2.imread('image1.jpg')

image2 = cv2.imread('image2.jpg')

将image1转换为灰度图像

gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)

创建掩码,黑色部分为0,非黑色部分为255

_, mask = cv2.threshold(gray_image1, 1, 255, cv2.THRESH_BINARY)

反转掩码

mask_inv = cv2.bitwise_not(mask)

获取图像1中有效区域的高度和宽度

height1, width1, _ = image1.shape

获取图像2的高度和宽度

height2, width2, _ = image2.shape

生成随机位置

random_y = random.randint(0, height2 - height1)

random_x = random.randint(0, width2 - width1)

创建ROI(Region of Interest),确保不超出图像2的范围

roi = image2[random_y:random_y + height1, random_x:random_x + width1]

创建ROI的反向掩码

roi_bg = cv2.bitwise_and(roi, roi, mask=mask_inv)

获取图像1中有效区域的前景

fg = cv2.bitwise_and(image1, image1, mask=mask)

合并前景和背景

dst = cv2.add(roi_bg, fg)

将合并后的图像放回图像2的相应位置

image2[random_y:random_y + height1, random_x:random_x + width1] = dst

显示结果

cv2.imshow('Merged Image', image2)

cv2.waitKey(0)

cv2.destroyAllWindows()

相关推荐
FrontAI2 分钟前
深入浅出 LangGraph —— 第6章:工具调用与ToolNode
人工智能·langchain·ai agent·langgraph
前端DOM哥2 分钟前
8 年前的老代码 + 20 刀 AI token = 我的第一款独立产品
前端·人工智能·架构
蔡大锅12 分钟前
🔥 在线学习算力平台推荐-Hyper.AI
人工智能·算法
老唐77715 分钟前
常见经典十大大机器学习算法分类与总结
人工智能·深度学习·神经网络·学习·算法·机器学习·ai
knight_9___19 分钟前
LLM工具调用面试篇2
人工智能·python·深度学习·机器学习·agent·rag
xlecho29 分钟前
从单一语言到全域全栈,AI凭全能实力,淘汰旧时代语言工程师
人工智能·后端·开源
lcj092466642 分钟前
数据中心运维升级|磁控U位硬件联动DCIM,破解U位管控难题
运维·人工智能·经验分享·信息可视化
ECT-OS-JiuHuaShan1 小时前
渡劫代谢,好事多磨
数据库·人工智能·科技·学习·算法·生活
阿瑞说项目管理1 小时前
有监督 vs 全自主:两种 Agent 范式,你选对了吗?
人工智能·agent·智能体·企业级ai
乔江seven1 小时前
【李沐 | 动手学深度学习】18 深度学习硬件:TPU和其他
人工智能·深度学习·深度学习硬件