图像的混合与渐进变换

1.实验目的

平常我们看到的美图秀秀等两个图片混合是怎么生成的呢,今天我们看看图像处理关于这部分怎么做的?

2.实验条件

pycharm + python编译器

3.实验代码

# @File: 图像混合与渐进变换.py
# @Author: chen_song
# @Time: 2024/6/11 下午6:08
"""
200 OpenCV examples by youcans / OpenCV 例程 200 篇
Copyright: 2022, Shan Huang, youcans@qq.com
"""

# 【0503】图像混合与渐变切换
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt

if __name__ == '__main__':
    img1 = cv.imread("../images/Lena.tif")  # 读取彩色图像(BGR)
    img2 = cv.imread("../images/Fig0301.png")  # 读取彩色图像(BGR)
    h, w = img1.shape[:2]
    img3 = cv.resize(img2, (w,h))  # 调整图像大小与 img1 相同
    print(img1.shape, img2.shape, img3.shape)
    imgAddCV = cv.add(img1, img3)  # 图像加法 (饱和运算)

    # 两幅图像的加权加法,推荐 alpha+beta=1.0
    alpha, beta = 0.25, 0.75
    imgAddW1 = cv.addWeighted(img1, alpha, img3, beta, 0)
    alpha, beta = 0.5, 0.5
    imgAddW2 = cv.addWeighted(img1, alpha, img3, beta, 0)
    alpha, beta = 0.75, 0.25
    imgAddW3 = cv.addWeighted(img1, alpha, img3, beta, 0)

    # 两幅图像的渐变切换
    wList = np.arange(0.0, 1.0, 0.05)  # start, end, step
    for weight in wList:
        imgWeight = cv.addWeighted(img1, weight, img3, (1-weight), 0)
        cv.imshow("ImageAddWeight", imgWeight)
        cv.waitKey(100)
    cv.destroyAllWindows()

    plt.figure(figsize=(9, 3.5))
    plt.subplot(131), plt.title("(1) a=0.2, b=0.8"), plt.axis('off')
    plt.imshow(cv.cvtColor(imgAddW1, cv.COLOR_BGR2RGB))
    plt.subplot(132), plt.title("(2) a=0.5, b=0.5"), plt.axis('off')
    plt.imshow(cv.cvtColor(imgAddW2, cv.COLOR_BGR2RGB))
    plt.subplot(133), plt.title("(3) a=0.8, b=0.2"), plt.axis('off')
    plt.imshow(cv.cvtColor(imgAddW3, cv.COLOR_BGR2RGB))
    plt.tight_layout()
    plt.show()


4.实验结果及视频

在这里插入图片描述
作为图像处理基本操作,我们按照程序思维,从最基本开始,一步步深化,探究其中奥秘~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CorelDRAW® Graphics Suite 全新 2024 专业图形设计软件

CorelDRAW Graphics Suite 是配备齐全的专业设计工具包,可以非常高的效率提供令人惊艳的矢量插图、布局、照片编辑和排版项目。价格实惠的订阅获得令人难以置信的持续价值,即时、有保障地获得独家的新功能和内容、一流的性能,以及对最新技术的…

【C语音 || 数据结构】二叉树--堆

文章目录 前言堆1.1 二叉树的概念1.2 满二叉树和完美二叉树1.3 堆的概念1.4 堆的性质1.4 堆的实现1.4.1堆的向上调整算法1.4.1堆的向下调整算法1.4.1堆的接口实现1.4.1.1堆的初始化1.4.1.2堆的销毁1.4.1.3堆的插入1.4.1.4堆的删除1.4.1.4堆的判空1.4.1.4 获取堆的数据个数 前言…

轻松玩转新商业模式:工会排队!

在当今数字化时代,互联网的蓬勃发展不仅重塑了商业模式,也深刻改变了消费者的购物习惯。传统的实体零售店面与在线销售平台正面临着巨大的市场挑战。然而,正是这些变革为品牌提供了新的发展机遇。通过创新的商业模式和有效的私域流量管理&…

弱监督语义/实例/全景分割综述2022

摘要 我们从一个统一的角度总结了现有的高效标签图像分割方法,讨论了一个重要的问题:如何弥合弱监督和密集预测之间的差距——目前的方法大多是基于启发式先验,如跨像素相似性、跨标签约束、跨视图一致性和跨图像关系。最后,对标签高效深度图…

纷享销客海外合规观点与方案:个人隐私数据保护与数据出入境

出海,已不再是企业的“备胎”,而是必须面对的“大考”!在这个全球化的大潮中,有的企业乘风破浪,勇攀高峰,也有的企业在异国他乡遭遇了“水土不服”。 面对“要么出海,要么出局”的抉择&#xf…

大功率回馈式负载:行业竞争态势

随着科技的不断发展,大功率回馈式负载在各个行业中的应用越来越广泛。大功率回馈式负载是一种能够将电能回馈到电网的设备,具有节能、环保、高效等优点。然而,随着市场竞争的加剧,大功率回馈式负载行业也面临着诸多挑战。 首先&am…

同城信息房产出租小程序源码系统 完全开源可二次开发 带完整的安装代码包以及搭建教程

系统概述 在数字化转型的浪潮中,房产租赁市场也迎来了新的发展机遇。随着移动互联网的普及,越来越多的用户倾向于通过手机应用或小程序来寻找合适的租房信息。为了满足这一需求,小编给大家分享一款“同城信息房产出租小程序源码系统”&#…

低价和低俗

无底线的低价可不就是低俗了吗? O(∩_∩)O哈哈~ AI说的(引导他说的) 以下几个角度可以进行论证: 低价竞争可能导致质量下降:为了达到极低的价格,商家可能会降低产品或服务的质量标准,使用劣质材料或减少投入。这样可能会影响产品的功能、安全性和使用体验,给消费…

智能合约漏洞类型

Are We There Yet? Unraveling the State-of-the-Art Smart Contract Fuzzers | Proceedings of the IEEE/ACM 46th International Conference on Software Engineering

MySQL-连接查询

049-内连接之等值连接 案例:查询每个员工所在的部门名称,要求显示员工名、部门名。 select e.ename, d.dname from emp e inner join dept d on e.deptnod.deptno;注意:inner可以省略 select e.ename, d.dname from emp e join dept d on…

docker registry-harbor私有镜像仓库安装

本博文将引导您安装和配置Harbor私有镜像仓库。安装前,请确保您已安装Docker和Docker Compose。 前置环境 需要安装docker和docker-compose 下载Harbor Harbor的最新版本可以从GitHub下载。这里以2.9.4版本为例: 下载地址:https://github…

大模型学习之GLM结构

探索GLM:一种新型的通用语言模型预训练方法 随着人工智能技术的不断进步,自然语言处理(NLP)领域也迎来了革命性的发展。OpenAI的ChatGPT及其后续产品在全球范围内引起了广泛关注,展示了大型语言模型(LLM&a…

服务器配置(初始化)

一:什么是云服务器及用途: 云服务器(Elastic Compute Service, ECS)是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。 我个人感觉就…

25年后回顾融智学新范式(感受人机互助新时代到了的愉悦,体验人机互助新时代的理解和表达的深入浅出)

25年后回顾融智学新范式 (不仅感受人机互助新时代到了的愉悦,更体验人机互助新时代的理解和表达的深入浅出) 一句话概述: 《融智学新范式》是一种创新的理论框架,它提出了协同智能主体的概念框架,通过严…

数据结构之链表的经典笔试题

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 203. 移除链表元素 206. 反转链表 876. 链表的中间节点 面试题 02.02. 返回倒数第k个节点 …

想让AI 驱动 UI 测试?墙裂推荐这个自动化工具!

文章概述 本文介绍了什么是视觉测试,功能测试对于视觉测试来说的局限性,视觉测试的重要意义及视觉测试结合python/java两种脚本的案例。 现如今公司不断部署新版本,有些甚至每天都会发布。这种持续部署意味着定期更新或现有代码行正在更改&a…

RabbitMQ概述

RabbitMQ RabbitMQ概述 RabbitMQ是一个开源的消息代理(message broker)系统,最初由Rabbit Technologies Ltd开发,并在开源社区的支持下不断发展和完善。它提供了强大的消息传递机制,被广泛应用于构建分布式系统和应用…

2003远程桌面端口修改,Windows Server 2003远程桌面端口修改的专业操作指南

在网络安全日益受到重视的今天,修改Windows Server 2003远程桌面的默认端口已成为提高服务器安全性的常规操作。默认情况下,远程桌面使用的端口为3389,这一广为人知的端口号常常成为黑客攻击的目标。因此,通过修改远程桌面端口&am…

JVM的几种常见垃圾回收算法

引言: Java Virtual Machine(JVM)作为Java程序运行的核心,其垃圾回收(Garbage Collection, GC)机制在内存管理中起着至关重要的作用。垃圾回收算法是JVM性能优化的重要方面。本文将详细介绍几种常见的垃圾回…

Spring Cloud Stream整合RocketMQ

Spring Cloud Stream整合RocketMQ 这里书接上回,默认你已经搭建好了RocketMQ主从异步集群,前面文章已经介绍过搭建方法。 1、Spring Cloud Stream介绍 Spring Cloud Stream是一个框架,用于构建与共享消息系统连接的高度可扩展的事件驱动微服…