城乡住房建设厅网站,潍坊学校网站建设,做阀门网站电话,哪些平台制作网站前言#xff1a;Hello大家好#xff0c;我是小哥谈。本节课就手把手教你如何改变图像的透明度#xff0c;希望大家学习之后能够有所收获~#xff01;#x1f308; 目录
#x1f680;1.技术介绍
#x1f680;2.实现代码 #x1f680;1.技术介绍
改变图像透明度的实… 前言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图像
运行结果如下所示