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

OpenCV技术应用(4)— 如何改变图像的透明度

前言:Hello大家好,我是小哥谈。本节课就手把手教你如何改变图像的透明度,希望大家学习之后能够有所收获~!🌈  

     目录

🚀1.技术介绍

🚀2.实现代码

🚀1.技术介绍

改变图像透明度的实质是设置图像的透明度值。因此,OpenCV在B通道G通道R通道的基础上,又增加了一个alpha通道(即A通道)。也就是说,通过A通道,就能够设置图像的透明度。在BGRA色彩空间中,A通道的取值范围是0~255;其中,0表示透明255表示不透明

本案例将实现的是让下图所示的目标图像呈现半透明(设置A通道的值为172)的视觉效果。

要想设置一幅BGR图像的透明度,先要把这幅图像的色彩空间转为BGRA色彩空间,再对其执行拆分通道的操作,而后在其他通道的值保持不变的情况下,设置A通道的值为172。

关键代码如下所示:

bgra_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2BGRA)
b, g, r, a = cv2.split(bgra_image)
a[:, :] = 172

🚀2.实现代码

具体的实现代码如下所示:

import cv2bgr_image = cv2.imread("1.png") # 读取当前项目目录下的图像
# 把读取到的图像从BGR色彩空间转为BGRA色彩空间
bgra_image = cv2.cvtColor(bgr_image, cv2.COLOR_BGR2BGRA)
b, g, r, a = cv2.split(bgra_image) # 拆分BGRA图像中的通道
a[:, :] = 172 # 设置BGRA图像的透明度为172(半透明)
bgra_172 = cv2.merge([b, g, r, a]) # 合并拆分后并将透明度调整为172的通道
cv2.imwrite("D:/bgra_172.png", bgra_172) # 在D盘根目录下,保存透明度为172的BGRA图像

运行结果如下所示:


http://www.lryc.cn/news/238086.html

相关文章:

  • SpringCloud之Feign
  • 股票池(三)
  • 如何搭建测试环境?一文解决你所有疑惑!
  • 【JVM】JVM异常不打印堆栈信息 [ -XX:-OmitStackTraceInFastThrow ]
  • 第十一章 目标检测中的NMS
  • vue项目中使用vant轮播图组件(桌面端)
  • 如何做好性能压测 —— 压测环境设计和搭建!
  • 手机弱网测试工具:Charles
  • Axios七大特性
  • 【机器学习基础】K-Means聚类算法
  • Vite - 配置 - 自动修改 index.html 中的title
  • 基于安卓android微信小程序美容理发店预约系统app
  • *** stack smashing detected ***: terminated
  • 鸿蒙系统扫盲(二):再谈鸿蒙是不是安卓套壳?
  • PG数据中DBeaver上传csv文件作为数据表
  • 第十七篇-Awesome ChatGPT Prompts-备份-百度翻译
  • [Android] Amazon 的 android 音视频开发文档
  • UE4基础篇十六:自定义 EQS 生成器
  • 轿车5+1汽车变速器变速箱同步器操纵机构机械结构设计CAD汽车工程
  • STM32F4移植SPI注意事项
  • CV计算机视觉每日开源代码Paper with code速览-2023.11.16
  • Git 简介及使用(1)
  • HTTPS流量抓包分析中出现无法加载key
  • 学习Rust适合写什么练手项目?【云驻共创】
  • Spring Cloud学习(九)【Elasticsearch 分布式搜索引擎01】
  • jvm 内存结构 ^_^
  • SQL基础理论篇(八):视图
  • element-ui中怎样使用iconfont的图标
  • 记一次struct2漏洞获取服务器
  • ChatGPT API 学习