当前位置: 首页 > news >正文

python学opencv|读取图像(十七)认识alpha通道

【1】引言

前序学习进程中,我们已经掌握了RGB和HSV图像的通道拆分和合并,获得了很多意想不到的效果,相关链接包括且不限于:

python学opencv|读取图像(十二)BGR图像转HSV图像-CSDN博客

python学opencv|读取图像(十四)BGR图像和HSV图像通道拆分-CSDN博客

python学opencv|读取图像(十五)BGR图像和HSV图像通道合并-CSDN博客 

实际上,在RGB图像中,还可以增加一个通道,增加通道的目的是调整图像的透明度,这就是alpha通道的来源。alpha通道的取值范围是[0,255],

今天我们就一起认识一下alpha通道。

【2】代码测试

【2.1】读取图像

首先是读取图像,在pycharm等编辑器中输入下述代码:
 

import cv2 as cv  # 引入CV模块
import numpy as np  # 引入numpy模块bgr_image = cv.imread('cv-ini-000.png')if bgr_image is not None:cv.imshow('cv-ini-000', bgr_image)  # 在屏幕上展示图片cv.waitKey()  # 不会自动关闭图像cv.destroyAllWindows()  # 释放所有窗口
else:print("There is no any photo")

这一步只是把原图读进来,原图cv-ini-000.png为:

图1 cv-ini-000.png

【2.2】BGR转BGRA

之后是将BGR图像转化为BGRA图像,这里的A就是增加了alpha通道后的意思。

在pycharm等编辑器中继续输入下述代码:

    # BGR转BGRAbgra_image = cv.cvtColor(bgr_image, cv.COLOR_BGR2BGRA)  # BGR转HSVcv.imshow('cv-ini-000-BGRA', bgra_image)  # 在屏幕上展示图片cv.imwrite('cv-ini-000-save-BGRA.png', bgra_image)  # 保存图片

代码运行后,获得的BGRA图像cv-ini-000-save-BGRA.png为:

图2 cv-ini-000-save-BGRA.png

【2.3】BGR转BGRA

之后是将BGRA图像进行通道拆分,补充下述代码:

    # BGRA通道拆分b,g,r,a=cv.split(bgra_image) #BGRA通道拆分cv.imshow('cv-ini-000-BGRA-A', a)  # 在屏幕上展示图片cv.imwrite('cv-ini-000-save-BGRA-A.png', a)  # 保存图片

运行代码后,获得的a通道图像为:

图3 cv-ini-000-save-BGRA-A.png

【2.4】修改A通达数值,然后合并回BGRA图像

在图3中,可以发现纯A通道的图像啥也看不出来。

所以,之后是将A通道重新赋值,再对BGRA图像进行通道合并,补充下述代码:

    # BGRA通道合并a[:,:]=120bgra120_image=cv.merge([b,g,r,a]) #BGRA通道合并cv.imshow('cv-ini-000-BGRA-A=120', bgra120_image)  # 在屏幕上展示图片cv.imwrite('cv-ini-000-save-BGRA-A=120.png', bgra120_image)  # 保存图片a[:,:]=30bgra30_image=cv.merge([b,g,r,a]) #BGRA通道合并cv.imshow('cv-ini-000-BGRA-A=30', bgra30_image)  # 在屏幕上展示图片cv.imwrite('cv-ini-000-save-BGRA-A=30.png', bgra30_image)  # 保存图片a[:,:]=0bgra0_image=cv.merge([b,g,r,a]) #BGRA通道合并cv.imshow('cv-ini-000-BGRA-A=0', bgra0_image)  # 在屏幕上展示图片cv.imwrite('cv-ini-000-save-BGRA-A=0.png', bgra0_image)  # 保存图片

代码运行后,以此获得的图像为:

图4 cv-ini-000-save-BGRA-A=120.png 透明度120

图5 cv-ini-000-save-BGRA-A=30.png 透明度30

图6 cv-ini-000-save-BGRA-A=0.png 透明度0

综上所述,改变A通道的值可以改变图片透明度。

【3】总结

体会了alpha通道的基本功能,掌握了调整alpha通道值的基本方法。

相关文章:

python学opencv|读取图像(十七)认识alpha通道

【1】引言 前序学习进程中,我们已经掌握了RGB和HSV图像的通道拆分和合并,获得了很多意想不到的效果,相关链接包括且不限于: python学opencv|读取图像(十二)BGR图像转HSV图像-CSDN博客 python学opencv|读…...

中小学教室多媒体电脑安全登录解决方案

中小学教室多媒体电脑面临学生随意登录的问题,主要涉及到设备使用、网络安全、教学秩序等多个方面。以下是对这一问题的详细分析: 一、设备使用问题 1. 设备损坏风险 学生随意登录可能导致多媒体电脑设备过度使用,增加设备损坏的风险。不当…...

Redis篇之Redis高可用模式参数调优,提高Redis性能

1. Redis高可用模式核心 Redis高可用模式的核心是使用主从复制和自动故障转移机制来确保系统在某些节点发生故障时仍然可以正常工作。 常用的高可用架构包括Redis Sentinel模式和Redis Cluster模式,其中Sentinel模式是为了提供高可用性而专门设计的解决方案。 在Re…...

linux-----进程execl簇函数

execl函数族概述 在Linux中,execl函数族用于在一个进程中加载并执行一个新的程序,它会替换当前进程的地址空间(代码段、数据段、堆和栈等)。这个函数族包括execl、execlp、execle、execv、execvp和execvpe,它们的主要功…...

Vue + ECharts 实现山东地图展示与交互

这篇文章中,我将逐步介绍如何使用 Vue 和 ECharts 实现一个互动式的地图展示组件,其中支持返回上一层地图、点击查看不同城市的详细信息,以及根据数据动态展示不同的统计信息。 效果图:玩转山东地图:用Echarts打造交互…...

【Verilog】UDP用户原语

User-defined primitives 概述基本语法组合逻辑的UDP时序逻辑的UDPUDP 符号表 Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。 Verilog 不仅定义了语法&…...

问题小记-达梦数据库报错“字符串转换出错”处理

最近遇到一个达梦数据库报错“-6111: 字符串转换出错”的问题,这个问题主要是涉及到一条sql语句的执行,在此分享下这个报错的处理过程。 问题表现为:一样的表结构和数据,执行相同的SQL,在Oracle数据库中执行正常&…...

MyBatis入门的详细应用实例

目录 MyBatis第一章:代理Dao方式的CRUD操作1. 代理Dao方式的增删改查 第二章:MyBatis参数详解1. parameterType2. resultType 第三章:SqlMapConfig.xml配置文件1. 定义properties标签的方式管理数据库的信息2. 类型别名定义 MyBatis 第一章&…...

Sequelize ORM sql 语句工具

Sequelize ORM sql 语句工具 初始化配置 Sequelize orm 配置文章落日沉溺于海 在命令行中全局安装 npm i -g sequelize-clisequelize 执行需要匹配 mysql2 对应的依赖(安装 mysql2) npm i sequelize mysql2初始化项目 sequelize init熟悉初始化项目后…...

增强LabVIEW与PLC通信稳定性

在工业自动化系统中,上位机与PLC之间的通信稳定性至关重要,尤其是在数据采集和控制任务的实时性要求较高的场景中。LabVIEW作为常用的上位机开发平台,通过合理优化通信协议、硬件接口、数据传输方式以及系统容错机制,可以大大提升…...

UDP系统控制器_音量控制、电脑关机、文件打开、PPT演示、任务栏自动隐藏

UDP系统控制器(ShuiYX) 帮助文档 概述 本程序设计用于通过UDP协议接收指令来远程控制计算机的音量、执行特定命令和其他功能。为了确保程序正常工作,请确认防火墙和网络设置允许UDP通信,并且程序启动后会最小化到托盘图标。 命令格式及说明 音量控制…...

NK细胞杀伐功能如何实现?

在人体的免疫系统中,自然杀伐细胞(Natural Killer Cells,简称NK细胞)是一类完全自然的免疫激活力量。它们为人体提供了快速反应能力,不依赖类元的特定识别力,但能直接寻找和毁灭毒病感染细胞和肿瘤细胞。那…...

Ubuntu搭建ES8集群+加密通讯+https访问

目录 写在前面 一、前期准备 1. 创建用户和用户组 2. 修改limits.conf文件 3. 关闭操作系统swap功能 4. 调整mmap上限 二、安装ES 1.下载ES 2.配置集群间安全访问证书密钥 3.配置elasticsearch.yml 4.修改jvm.options 5.启动ES服务 6.修改密码 7.启用外部ht…...

PC寄存器(Program Counter Register)jvm

在JVM(Java虚拟机)中,PC寄存器(Program Counter Register)扮演着至关重要的角色。以下是对JVM中PC寄存器的详细解释: 一、定义与功能 定义: JVM中的PC寄存器,也被称为程序计数器,是对物理PC寄存器的一种抽象模拟。它用于存储当前线程所执行的字节码指令的地址,即指…...

预览和下载 (pc和微信小程序)

1.微信小程序 预览pdf 或者 图片等 //utils.js 文件//通过接口返回文件链接 打开文档 export default function previewFile({ downLinkUrl, tempFilePath }) {let url "https://" downLinkUrl.replace("http://", "").replace("https:…...

使用 DeepSpeed 微调 OPT 基础语言模型

文章目录 OPT 基础语言模型Using OPT with DeepSpeedmain.py 解析1、导入库和模块2、解析命令行参数3、main 函数3.1 设备与分布式初始化3.2 模型与数据准备3.3 定义评估函数3.4 优化器与学习率调度器设置3.5 使用 deepspeed 进行模型等初始化3.6 训练循环3.7 模型保存 4、dsch…...

BSM和BMS什么区别?

BSM BSM(Battery System Manager)是指用于管理和控制电动车辆的电池系统的设备,其功能包括监测电池状态、控制充放电过程、保护电池安全等。 BMS BMS(Battery Management System)是指用于监测、控制和保护电池组的设…...

使用Maven打包javaagent.jar

1、简介 javaagent 是 Java1.5 之后引入的新特性,其主要作用是在class被加载之前对其拦截,以插入我们的字节码。 java1.5 之前使用的是JVMTI(jvm tool interface)技术来实现对class的拦截,不过这个是用 C 编写的&#…...

R语言混合模型回归GBTM群组轨迹模型绘图可视化研究

全文链接:https://tecdat.cn/?p38581 在回归分析的广袤领域中,面对具有多条未知函数线的复杂数据时,传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生,其在处理此类复杂情境时展现出独特的优势与潜力&#xff08…...

【毕业设计】A079-基于Java的影院订票系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…...

2025届必备的五大降AI率工具推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 伴随人工智能内容生成被广泛运用,其潜在风险愈发明显地呈现出来。为了应对这些具…...

AI Coding如何落地APP开发——从个人玩具到公司级降本增效

一、AI 编程能力如何应用到APP开发团队 每天打开新闻都是各种: AI可以取代程序猿、AI可以独立写页面、AI可以独立完成APP,程序员马上要失业了,一个产品经理半天时间就能生成一个带完整页面的活动模块原型;一个运营人员一个小时就…...

突破性创新:Midscene.js如何用AI视觉驱动重塑跨平台自动化测试

突破性创新:Midscene.js如何用AI视觉驱动重塑跨平台自动化测试 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 在当今复杂的软件生态中,跨…...

RK3588平台IMX415摄像头驱动调试全流程与实战指南

1. 项目概述与核心挑战最近在基于瑞芯微RK3588平台调试索尼IMX415摄像头,整个过程可以说是既典型又充满细节。对于嵌入式Linux开发,尤其是多媒体应用,摄像头驱动调试往往是硬件适配中最关键也最磨人的一环。RK3588作为一款高性能的AIoT SoC&a…...

PromethAI-Backend:构建标准化AI智能体后端框架的工程实践

1. 项目概述与核心价值最近在折腾AI应用开发,特别是想搞一个能处理复杂工作流的智能体系统,发现了一个挺有意思的开源项目——PromethAI-Backend。这名字听着就有点“普罗米修斯”盗火种给人类的意思,挺形象的,它本质上就是一个为…...

安科瑞 EMS3.0智慧能源管理解决方案-光伏智维先知引擎,AI驱动预测性维护新范式

一、需求背景新能源光伏场站迈入规模化、长周期运营阶段,组件老化隐匿、故障识别滞后、运维被动响应、资产价值隐性流失已成为行业共性痛点。传统事后维修、定期检修模式难以应对复杂故障与隐性衰减,造成停机损失高、运维成本高、误判漏判率高。依托GB/T…...

声临其境 安全直达 ——NR2048 赋能矿场高可靠高清语音通信

在矿山开采作业中,通信是安全生产的生命线。井下巷道狭长封闭、机械轰鸣、粉尘潮湿、瓦斯与易燃易爆环境并存,传统通信设备普遍存在噪声大、回声重、易啸叫、传输模糊、可靠性不足等痛点,直接威胁调度指令下达、应急呼叫响应与人员生命安全。…...

not-my-job:基于代码变更自动定责的工程效能工具设计与实践

1. 项目概述:一个“甩锅”工具背后的工程哲学在软件开发团队里,我们经常会遇到一种让人哭笑不得的场景:一个功能模块出了问题,你作为负责人去排查,结果发现问题的根源在于另一个团队维护的底层依赖。当你试图去推动修复…...

别熬大夜改 PPT 了!Paperxie AI PPT,一键搞定毕业论文答辩

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 论文终稿刚定稿,答辩 PPT 的空白页面就开始让人焦虑。打开 PowerPoint,对着 “新建幻灯片” 发愣&am…...

[NLP]Huggingface模型与数据集高效下载全攻略:告别网络瓶颈

1. 为什么你需要这篇Huggingface下载指南 作为一名NLP工程师,我太理解那种盯着进度条干着急的感受了。记得上个月我在复现一个对话模型时,光是下载6B参数的模型就花了整整一上午——不是因为模型太大,而是公司网络时不时抽风,每次…...