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 = image2random_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的相应位置

image2random_y:random_y + height1, random_x:random_x + width1 = dst

显示结果

cv2.imshow('Merged Image', image2)

cv2.waitKey(0)

cv2.destroyAllWindows()

相关推荐
光锥智能16 小时前
WAIC亮点|兼具泛化能力与作业效率的极智嘉机器人天团
人工智能·机器人
阳光是sunny16 小时前
LangGraph中的Reducer是什么
前端·人工智能·后端
甲维斯16 小时前
Kimi K3 重构10000行单文件屎山代码!
人工智能
阳光是sunny16 小时前
从链到图:LangGraph 入门基础全解析
前端·人工智能·后端
新知图书17 小时前
11.3 详细实现与核心配置(作业批改智能体开发)
人工智能·agent·ai agent·智能体·扣子
深度研习笔记18 小时前
OpenCV工业视觉实战11|多线程解耦+视频流稳流+推理加速,彻底解决卡顿阻塞,实现毫秒级工业实时检测
人工智能·opencv·计算机视觉
delishcomcn18 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法
触底反弹18 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
cd_9492172118 小时前
2026 AI Agent 落地指南:除了搭建工具,你还需要配套的搜索基础设施
人工智能
武子康18 小时前
Search Console Platform Properties 扩大 SEO 资产边界:从 Page Ranking 到 Topic Coverage(5 类误读边界 + 3 表数据层设计)
前端·人工智能·后端