opencv——将2张图片合并

效果演示:

带有绿幕的图片的狮子提取出来,放到另一种风景图片里!

1. 首先我们要先口出绿色绿幕,比如:

 

这里将绿色绿色绿幕先转为HSV,通过修改颜色的明暗度,抠出狮子的轮廓。

代码 :

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
def showImg(img):img1 = cv.cvtColor(img, cv.COLOR_BGR2RGB)plt.imshow(img1)
img = cv.imread("img/lion.jpg", cv.IMREAD_COLOR)img_copy =  img.copy()# 将BGR格式转为 HSV
hsv_img = cv.cvtColor(img_copy, cv.COLOR_BGR2HSV)lowerb_val = (35,43, 46)
upperb_val = (77, 255, 255)
# 查找颜色
mask_img =  cv.inRange(hsv_img, lowerb_val, upperb_val)
showImg(mask_img)

说明:这里的颜色需要通过下面的列表,查找一下:

 

2.  通过轮廓反向获取狮子

 

代码:

img_copy[mask_img != 0] = (0,0,0)
showImg(img_copy)

说明: 这里的意思是说 获取不是黑色颜色的部分,并且其它背景为黑色。

3.  使两张图片融合

代码:

img_it = cv.imread("img/yunduo.png", cv.IMREAD_COLOR)height,width = img_it.shape[0:2]mask_rgb_img = cv.cvtColor(mask_img, cv.COLOR_BGR2RGB)srt_img = np.zeros_like(img_it)for row in range(height):for col in range(width):b,g,r = img_it[row,col]b1,g1,r1 = mask_rgb_img[row,col]b2,g2,r2 = img_copy[row,col]if b1 != 255 and g1 != 255 and r1 !=255:b = b2g = g2r = r2srt_img[row,col] = (b,g,r)fig = plt.figure(figsize=(20,17))
fig.add_subplot(1,3,1)
showImg(img)
fig.add_subplot(1,3,2)
showImg(img_copy)
fig.add_subplot(1,3,3)
showImg(srt_img)

 说明:这里是分开了3原色,并且分开判断是否为255,不是255.者将这块区域替换成狮子的部分。

 

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

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

相关文章

麒麟系统—— openKylin 安装 Maven

麒麟系统—— openKylin 安装 Maven 一、准备工作1. 确保麒麟系统 openKylin 已经安装完毕。2. 确保 java 已经安装完毕 二、下载Maven三、解压 Maven 与环境配置解压配置环境变量验证 最终:介绍配置的其他参数使用 本文将分享如何在麒麟操作系统 openKylin 上安装…

RK3326系统中集成思必驰音频适配文件

前言 最近本人在RK3326 8.1系统上做定制化,需要对接思必驰平台音频相关接口,同时在系统中集成音频适配文件,踩了很多坑,写这篇文章记录一下。 一、为什么要集成音频适配文件? 当APP(集成…

MS7336MA高清 HD/全高清 FHD 可选择视频运放与视频同轴线控解码

产品简述 MS7336MA 是一颗集成单通道视频放大器与视频同轴线控解 码为一体的芯片,它内部集成 6dB 增益轨到轨输出驱动器以及 10 阶滤波器,允许同一个输入信号在 -3dB 带宽 35MHz 和 55MHz 之间进行选择控制。视频同轴线控解码内部集成一颗高…

PyFlink使用教程,Flink,Python,Java

环境准备 环境要求 Java 11 Python 3.7, 3.8, 3.9 or 3.10文档:https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/docs/dev/python/installation/ 打开 Anaconda3 Prompt > java -version java version "11.0.22" 2024-01-16 LTS J…

数据结构(队列Queue)

文章目录 一、队列1、队列的定义2、队列的顺序实现2.1、初始化2.2、入队2.3、出队2.4、查找2.5、判断队列 满/空 3、队列的链式实现3.1、初始化3.2、入队3.3、出队 4、双端队列 一、队列 1、队列的定义 2、队列的顺序实现 2.1、初始化 //初始化 void InitQueue(SqQueue &Q…

mysql之基本查询

基本查询 一、SELECT 查询语句 一、SELECT 查询语句 查询所有列 1 SELECT *FORM emp;查询指定字段 SELECT empno,ename,job FROM emp;给字段取别名 SELECT empno 员工编号 FROM emp; SELECT empno 员工编号,ename 姓名,job 岗位 FROM emp; SELECT empno AS 员工编号,ename …

Python爬虫解析库安装

解析库的安装 抓取网页代码之后,下一步就是从网页中提取信息。提取信息的方式有多种多样,可以使用正则来提取,但是写起来相对比较烦琐。这里还有许多强大的解析库,如 lxml、Beautiful Soup、pyquery 等。此外,还提供了…

【开源】JAVA+Vue.js实现电子元器件管理系统

目录 一、摘要1.1 项目简介1.2 项目录屏 二、研究内容三、界面展示3.1 登录&注册&主页3.2 元器件单位模块3.3 元器件仓库模块3.4 元器件供应商模块3.5 元器件品类模块3.6 元器件明细模块3.7 元器件类型模块3.8 元器件采购模块3.9 元器件领用模块3.10 系统基础模块 四、…

java自动化之创建自动化框架项目(第一天)

1.前言 idea版本为2023.2 java版本为17.0.9 技术栈: javase:封装、泛型、反射、jdbc等 testng:开源测试框架,是从Junit继承而来 httpclient:java提供的与服务端http接口进行交互的库 fastjson:处理js…

分类预测 | Matlab实现SCN-Adaboost随机配置网络模型SCN的Adaboost数据分类预测/故障识别

分类预测 | Matlab实现SCN-Adaboost随机配置网络模型SCN的Adaboost数据分类预测/故障识别 目录 分类预测 | Matlab实现SCN-Adaboost随机配置网络模型SCN的Adaboost数据分类预测/故障识别分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现SCN-Adaboost随机配置网…

04.对象树

一、引入 1.QT实现输出"hello world" 使用QT编写"hello world"程序,有两种实现方式: (1)直接在生成的ui文件中,拖入一个label控件,双击控件编辑内容即可实现 (2&#xff0…

RK3568 Android 13 系统裁剪

android 13 系统裁剪是个大工程,裁剪也是需要大量的测试,才能保证系统的稳定性,以下是RK官方给出的裁剪方案,有兴趣的可以去看一下,对裁剪不是要求过高的可以根据官方的建议,对系统进行裁剪: Rockchip And…