【python】OpenCV—Merge Image

在这里插入图片描述

文章目录

  • np.hstack / np.vstack
  • Slice
  • cv2.addWeighted
  • 自定义渐变式叠加
  • cv2.bitwise_not / cv2.bitwise_and / cv2.add

np.hstack / np.vstack

利用 numpy 的 hstack 和 vstack,对图片进行拼接

import cv2
import numpy as nph, w = 256,256
img1 = cv2.resize(cv2.imread("1.jpg"), (w, h))
img2 = cv2.resize(cv2.imread("2.png"), (w, h))horizontal = np.hstack((img1, img2))
cv2.imwrite("horizontal.jpg", horizontal)vertical = np.vstack((img1, img2))
cv2.imwrite("vertical.jpg", vertical)

输入图片
在这里插入图片描述
在这里插入图片描述

horizontal

在这里插入图片描述

vertical

在这里插入图片描述

Slice

学习来自 Python 图像合并:利用 OpenCV 的强大功能

图片 reszie 成同样大小,生成空白图,利用切片,给相应区域赋值

import cv2
import numpy as npdimension = 256
canvas_dimension = 2 * dimensionimg1 = cv2.resize(cv2.imread("1.png"), (dimension, dimension))
img2 = cv2.resize(cv2.imread("2.png"), (dimension, dimension))
img3 = cv2.resize(cv2.imread("3.png"), (dimension, dimension))
img4 = cv2.resize(cv2.imread("4.png"), (dimension, dimension))canvas = np.zeros((canvas_dimension, canvas_dimension, 3), dtype=np.uint8)canvas[0:dimension, 0:dimension] = img1
canvas[0:dimension, dimension:canvas_dimension] = img2
canvas[dimension:canvas_dimension, 0:dimension] = img3
canvas[dimension:canvas_dimension, dimension:canvas_dimension] = img4# cv2.imwrite("merge.jpg", canvas)
cv2.imshow("merge", canvas)
cv2.waitKey(0)
cv2.destroyAllWindows()

输入图片1
在这里插入图片描述

输入图片2
在这里插入图片描述

输入图片3
在这里插入图片描述

输入图片4
在这里插入图片描述

合并结果
在这里插入图片描述

cv2.addWeighted

import cv2
w, h = 960, 540
img1 = cv2.resize(cv2.imread("1.jpg"), (w, h))
img2 = cv2.resize(cv2.imread("2.jpg"), (w, h))
merge = cv2.addWeighted(img1, 0.7, img2, 0.3, gamma=.0)
cv2.imwrite("merge.jpg", merge)

输入1

在这里插入图片描述

输入2

在这里插入图片描述

输出

在这里插入图片描述

自定义渐变式叠加

Python国庆头像制作

渐变透明度叠加

原图

在这里插入图片描述

在这里插入图片描述

from PIL import Imageflag = Image.open('1.png').convert("RGBA")
avatar = Image.open('2.jpg').convert("RGBA")flag = flag.resize(avatar.size)for i in range(flag.size[0]):for j in range(flag.size[1]):r, g, b, _ = flag.getpixel((i, j))alpha = max(0, 255 - i // 5 - j // 7) # 核心代码,左上角到右下角越来越透明# 重新填充像素flag.putpixel((i, j), (r, g, b, alpha))avatar.paste(flag, (0, 0), flag)
avatar.save('flag_avatar.png')

叠加后的效果

在这里插入图片描述

cv2.bitwise_not / cv2.bitwise_and / cv2.add

可以参考 【python】OpenCV—Paste Mask

A 图

请添加图片描述

A 图的 mask 标签

请添加图片描述
B 图

请添加图片描述
合并的结果
在这里插入图片描述

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

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

相关文章

Pico4 MR Unity零基础开发之开启MR透视

一、新建场景:SeethroughScene 1、新建场景。 二、添加 XR 摄像机进行设置 1、在 Hierarchy 窗口中,右击默认添加的 Main Camera,然后点击 Delete 将其删除。 2、点击 > XR > XR Origin (VR),将 XR Origin 添加至场景 3、…

[leetcode hot 150]第七十题,爬楼梯(动态规划)

题目: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 爬到第 n 阶楼梯的方法数量等于爬到第 n-1 阶和第 n-2 阶的方法数量之和,即: f(n) f(n-1) f(n-2) 边界条件 还需要考虑边界…

【调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输】

调试笔记-系列文章目录 调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输 文章目录 调试笔记-系列文章目录调试笔记-20240602-Linux-在 OpenWRT-23.05 上配置 frps 与 frpc 之间使用 TLS 进行传输 前言一、调试环境操作系统:O…

Ubuntu 22.04安装cuda及Pytorch教程

文章目录 1、安装显卡驱动2、安装CUDA3、安装cuDNN4、安装pyTorch5、卸载CUDA参考资料 在PyTorch中使用CUDA,需要确保安装的PyTorch版本与你的CUDA版本兼容, 且正确安装了匹配GPU的CUDA Toolkit。以下是在PyTorch中使用CUDA的一般步骤: 检查C…

Padstack制作贴片和通孔焊盘

Padstack制作贴片和通孔焊盘 一、贴片焊盘制作 先选择SMD Pin,下面的pad geometry根据需求选择,一般是Circle和Rectangle,然后选择单位,mm制。 然后点击Design Layers,只需要修改Regular Pad常规焊盘就行&#xff0c…

七天进阶elasticsearch[two]

批量保存 批量保存是通过_bulk API来实现的 请求方式 post 请求地址 _bulk 通过_bulk操作文档,一般至少有两行参数 第一行用于确定要干什么(插入,修改还是删除) 第二行才是操作的数据; 当然以上是标准操作,也可以不遵循标准操作,使用不同的请求方式来完成 批量保存demo…

浅谈申请小程序地理位置权限的正确打开方式

小程序地理位置接口有什么功能? 这篇内容会教大家如何快速申请“获取当前的地理位置(onLocationChange)”接口,以便帮助大家顺利开通接口。以下内容是本人经历了多次的申请经历得出来的经验,来之不易,望大家…

【Python】让我们来生成二维码吧

准备操作 安装qrcode包:pip install qrcode[pil] 安装Pillow包:pip install Pillow 代码 import qrcode import hashlibdef generate_filename(url):data_bytes url.encode("utf-8")file_name hashlib.sha256(data_bytes).hexdigest()re…

图卷积网络原理及实践

图神经网络 (GNN) 是深度学习领域最吸引人且发展最快的架构之一。作为旨在处理图结构数据的深度学习模型,GNN 具有非凡的多功能性和强大的学习能力。 在各种类型的 GNN 中,图卷积网络 (GCN) 已成为最流行且应用最广泛的模型。GCN 具有创新性&#xff0c…

现在有一个生产计划,甲乙丙3个品类共16个产品,生产时间6天,每天甲品类可以生产1张单,乙3张,丙1张,请用MySQL写出H列的效果

现在有一个生产计划,甲乙丙3个品类共16个产品,生产时间6天,每天甲品类可以生产1张单,乙3张,丙1张,请用MySQL写出H列的效果吗? 最终展示结果要求为: 品类产品生产时间开始生产时间…

Android开机动画压缩包zip,自制开机动画(基于Android10.0.0-r41)

文章目录 Android开机动画压缩包zip,自制开机动画1.Android加载压缩包原理2.自制开机动画 Android开机动画压缩包zip,自制开机动画 1.Android加载压缩包原理 这里有个md文件我们看下 核心部分, 首先要创建一个文件叫做desc.txt,这是规定的…

【AI】你要的U-KAN来了

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 U-KAN来了,快是真的快的,上个月才出的KAN,不得不说快。 先占个坑,有时间细看。 下面放上摘要 1. 正文 …

Django 外键关联数据

在设计数据库的时候,是得需要通过外键的形式将各个表进行连接。 原先的表是这样的 要想更改成这样: 下面是操作步骤: 有两张表是关联的 # 在 models.py 里创建class Department(models.Model):"""部门表""&quo…

基于Arduino的简易磁悬浮装置原理图和源代码分享

磁悬浮装置原理 大家可能都玩过这种磁悬浮玩具,它们的工作原理与此类似。 首先,让我们了解一下这个原理,其实非常简单。它主要依赖于磁力对悬浮物体的控制。基本原理如下:在浮子的正下方放置一个霍尔传感器。当传感器检测到浮子向…

Android Compose 十:常用组件列表 监听

1 去掉超出滑动区域时的拖拽的阴影 即 overScrollMode 代码如下 CompositionLocalProvider(LocalOverscrollConfiguration provides null) {LazyColumn() {items(list, key {list.indexOf(it)}){Row(Modifier.animateItemPlacement(tween(durationMillis 250))) {Text(text…

七天进阶elasticsearch[one]

elasticSearch 概述 Elasticsearch是一个近实时的搜索平台。这意味着,从索引一个文档直到这个文档能够被搜索到有一个很小的延迟(通常是一秒) 集群 一个集群就是由一个或多个节点组织在一起, 它们共同持有你全部的数据&#x…

【第8章】SpringBoot实战篇之文章分类(上)

文章目录 前言一、后端代码1. CategoryController2. service3. CategoryMapper4. Category 二、测试1. 失败(校验)2.正常 总结 前言 从这开始进入文章相关的接口开发,本章主要介绍定义文章分类接口和新增文章分类 建表语句和测试用例,在SpringBoot专栏首…

pyspark中使用mysql jdbc报错java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决

报错信息: py4j.protocol.Py4JJavaError: An error occurred while calling o33.load. : java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 我的解决方法: 这个报错就是提示你找不到jar包,所以你需要去下载一个和你mysql版本匹配的j…

智慧园区智能化系统整体解决方案(111页PPT)

方案介绍: 智慧园区智能化系统整体解决方案是一个综合性的管理平台,它通过集成视频、报警、园区一卡通、产线管理、能耗管理、公共广播、信息发布等多种系统,实现园区的全方位智能化管理。该系统以基础管理平台为系统基础,提供系…

实验五、IPv4地址的子网划分,第1部分《计算机网络》

但凡你有点本事,也不至于一点本事都没有。 目录 一、实验目的 二、实验内容 三、实验小结 一、实验目的 完成本练习之后,您应该能够确定给定 IP 地址和网络掩码 的网络信息。本练习旨在让您掌握如何根据给定 IP 地址计算网络 IP 地址信息。 二、实验…