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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/712596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python自动发邮件

我经常需要用手机看服务器的运行情况,所以就写一个脚本,通过邮件把服务器运行情况发送给我,直接手机可以查看炼丹状态。事实证明还是很有用的,所以撰写一篇博文将脚本分享给大家。这里用到smtplib和email两个python包。 import s…

力扣精选算法100道——颜色分类(双指针和三指针俩种方法解决此题)

目录 🚩了解题意 🚩算法分析 第一种方法:双指针 🚩代码实现一 第二种方法:三指针 🚩代码实现二 🚩了解题意 本题将整数0,1,2代表红白篮,nums中的整数并…

仿牛客网项目---私信列表和发送列表功能的实现

这篇文章我们来讲一下我的这个项目的另外一个功能&#xff1a;私信列表和发送列表功能。 先来设计DAO层。 Mapper public interface MessageMapper {// 查询当前用户的会话列表,针对每个会话只返回一条最新的私信.List<Message> selectConversations(int userId, int of…

【激光SLAM】基于已知位姿的构图算法 (Grid-based)

文章目录 地图分类概念 覆盖栅格建图算法栅格地图的特征数学描述假设 算法流程激光雷达的逆观测模型 计数(Count Model)建图算法概念数学描述观测模型地图估计 地图分类 概念 地图即为环境的空间模型。环境地图是机器人进行定位和规划的前提。定位可以用特征地图&#xff08;…

可穿戴设备相关Python包【待更】

提供7个python 包。 1 2 3 4 5 6 7 pyActigraphyGitHub - ghammad/pyActigraphy: Python-based open source package for actigraphy data analysisActiGraph ActiGraph GitHub

基础内容哦!!!吴恩达deeplearning.ai:利用计算图求导(反向传播)

以下内容有任何不理解可以翻看我之前的博客哦&#xff1a;吴恩达deeplearning.ai专栏 文章目录 一个小型神经网络的例子利用计算图逐步计算价值函数J利用计算图求出价值函数的导数 计算图是深度学习中的一个关键概念&#xff0c;它也是Tensorflow等编程框架自动计算神经网络导…

Linux之sed命令详解及实践

1、定义 sed全称是&#xff1a;stream editor 流编辑器 对文件的操作无非就是”增删改查“&#xff0c;**sed命令就是实现对文件的”增删改查“。** **man sed//man 的解释** 用于过滤和转换文本的流编辑器 2、功能 Sed 主要用来自动编辑一个或多个文件、简化对文件的反复…

实现定时器的两种方法:使用windows api定时器 和使用c++11/14 定时器

前言&#xff1a; 当我有一个开发需求&#xff0c;符合下面的条件 1.需要某个任务在程序中每隔一段时间就要执行一次&#xff0c;可能把这个任务封装成了一个函数。 2.这种需要定时执行的任务&#xff0c;有2个&#xff0c;3个....越来越多。 这个时候我们就可以考虑使用定时…

iOS高级理论:常用的架构模式

一、常用的架构模式简介 在 iOS 开发中&#xff0c;常用的架构模式有以下几种&#xff1a; MVC&#xff08;Model-View-Controller&#xff09;模式&#xff1a;是 iOS 开发中最常见的架构模式。在 MVC 模式中&#xff0c;Model 负责数据处理和业务逻辑&#xff0c;View 负责界…

Tcl文件访问

1. 基本文件输入输出命令 open 文件名 方式 set f [open $filename "r"] f 是文件的通道ID,可以使用open命令打开文件并获取通道ID r 只读方式打开,文件必须已经存在 r+ 读写方式打开,文件必须已经存在 w 只写方式打开文件,如果文件存在则清空文件内容,否则创建…

第三百七十六回

文章目录 1 .概念介绍2. 实现方法3. 示例代码 我们在上一章回中介绍了在页面之间共传递数据相关的内容&#xff0c;本章回中将介绍如何拦截路由.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1 .概念介绍 本章回中介绍的路由拦截是指在路由运行过程中&#xff0c;对路由做…

会了会了会了

public class text9 {/*在实际开发中&#xff0c;如果我们需要在多种情况中选择其中一个,就可以用switch语句。当我m们拨打电话&#xff0c;会有一些按键选择。假设我们拨打了一个机票预订电话&#xff0c;电话中提示&#xff1a;1机票查询2机票预订3机票改签4退出服务其他按键…

论文阅读_代码生成模型_CodeLlama

英文名称: Code Llama: Open Foundation Models for Code 中文名称: Code Llama&#xff1a;开放基础代码模型 链接: https://arxiv.org/abs/2308.12950 代码: https://github.com/facebookresearch/codellama 作者: Baptiste Rozire, Jonas Gehring, Fabian Gloeckle, Sten So…

【前端素材】推荐优质在线花卉商城电商网页Flowery平台模板(附源码)

一、需求分析 1、系统定义 在线花卉商城是一个通过互联网提供花卉销售服务的电子商务平台&#xff0c;用户可以在该平台上浏览、选择和购买各种花卉产品。 2、功能需求 在线花卉商城是一个通过互联网提供花卉销售服务的电子商务平台&#xff0c;用户可以在该平台上浏览、选…

vscode在windows环境不能使用终端安装依赖

会报这样的错误提示 解决思路&#xff1a; 1、vscode用管理员打开 (非必须) 2、设置策略 打开 windows powerShell . 输入命令 set-ExecutionPolicy RemoteSigned 然后 Y . 查看是否设置成功 get-executionpolicy 3、下载总是超时&#xff0c;设置镜像源 查看镜像源 npm …

【知识分享】vue制作一个页面计算器

1.制作思路 制作一个简单的页面计算器可以分为以下几个步骤&#xff1a; &#xff08;1&#xff09;创建 Vue 组件&#xff0c;包括显示屏和按钮组件。 &#xff08;2&#xff09;设置数据属性&#xff0c;用于存储计算器的当前状态&#xff08;如显示屏上的数字&#xff09…

蓝桥杯-天数

//此题属于简单 #include <iostream> using namespace std; int main() { int n; cin>>n; if(n2) { cout<<28; return 0; } if(n1||n3||n5||n7||n8||n10||n12)//一定要记得写成n什么&#xff0c;每个都要写&#xff0c;不要漏掉 { cou…

常见漏洞的流量特征

1、SQL注入漏洞 查看url / Referer字段/User-Agent字段/cookie字段 出现一些特殊字符&#xff08;eg&#xff1a;单引号【‘】、双引号【“”】、括号【&#xff08;&#xff09;】、单引号括号【‘&#xff08;】、双引号括号【“&#xff08;】等一些常见的特殊的字符&#…

数通HCIE和云计算HCIE哪个好一点?

数通是网络的基础知识&#xff0c;也是入门人员必学的方向&#xff0c;相对也会简单些&#xff0c;学习数通&#xff0c;可以很好的学习其他的方向。数通的就业范围也比较广&#xff0c;运营商、企业、政府还是互联网公司&#xff0c;都需要大量的数通工程师来搭建和维护网络&a…

探索rsync远程同步和SSH免密登录的奥秘

目录 集群分发脚本xsyncscp&#xff08;secure copy&#xff09;安全拷贝rsync 远程同步工具集群分发脚本 SSH免密登录免密登录原理SSH免密登录配置生成公钥和私钥授权测试 在现代科技飞速发展的时代&#xff0c;数据的备份和迁移成为了一个重要的课题。其中&#xff0c;rsync远…