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()

相关推荐
CoderJia程序员甲1 小时前
GitHub 热榜项目 - 日榜(2026-02-06)
人工智能·ai·大模型·github·ai教程
wukangjupingbb1 小时前
AI多模态技术在创新药研发中的结合路径、机制及挑战
人工智能
CoderIsArt1 小时前
三大主流智能体框架解析
人工智能
民乐团扒谱机2 小时前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Coder_Boy_2 小时前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
芷栀夏2 小时前
CANN ops-math:揭秘异构计算架构下数学算子的低延迟高吞吐优化逻辑
人工智能·深度学习·神经网络·cann
L543414462 小时前
告别代码堆砌匠厂架构让你的系统吞吐量翻倍提升
大数据·人工智能·架构·自动化·rpa
孤狼warrior2 小时前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
凯子坚持 c2 小时前
构建企业级 AI 工厂:基于 CANN `cann-mlops-suite` 的端到端 MLOps 实战
人工智能
Elwin Wong2 小时前
浅析OpenClaw:从“贾维斯”梦想看下一代 AI 操作系统的架构演进
人工智能·agent·clawdbot·moltbot·openclaw