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

相关推荐
basketball6167 分钟前
AI Infra 硬件体系与编程模型:5. Tensor Core 解析
人工智能
2601_9557674215 分钟前
iPhone 17 OLED 屏幕偏振光学分析 & AR 镀膜与双护技术实践解析
人工智能·科技·ios·iphone·圆偏振光
DeniuHe1 小时前
深度学习中的MLP层
人工智能·深度学习
IT_陈寒1 小时前
Vite项目build后路由404了?你可能漏了这个小配置
前端·人工智能·后端
海兰1 小时前
【小程序】基于 AI 大语言模型驱动的中国古典诗词 Web 应用详细设计指南
人工智能·语言模型·小程序
有浔则灵1 小时前
从零开始构建 AI Agent(一):理解 Eino 的 Component 抽象与流式对话
人工智能·log4j
团象科技1 小时前
从一线运营场景观察 海外云 独立站的跨境效能释放实践路径
大数据·人工智能
咸鱼翻身小阿橙2 小时前
在VScode使用C#并且调用opencv库
vscode·opencv·c#
今日综合2 小时前
2026免费AI自动抠图工具汇总:全平台+电脑在线全方案,无水印零套路
人工智能·电脑