目录
一 什么是RGBA图像
定义:RGBA是代表red(红色)、green(绿色)、blue(蓝色)和alpha的色彩空间,是在RGB颜色模型上增加了一个alpha通道
比如RGB图像的shape为(450,548,3), 那么对应的RGBA图像的shape为(450,548,4)
位深度:RBG为24位
RGBA为32位
图像格式:PNG是一种使用RGBA的图像格式(RGBA图像只能保存为PNG格式)
说明:如果一个像素的alpha通道数值为0,那它就是完全透明的(也就是看不见的),而数值为255则意味着一个完全不透明的像素(传统的数字图像)
RGBA图像有什么作用:在计算机图形学领域,alpha合成(英语:alpha compositing)是一种将图像与背景结合的过程,结合后可以产生部分透明或全透明的视觉效果。 图像语义分割最终得到的图片就是RGBA图片。
二 RGB转RGBA
指定区域alpha为0,120,255的结果展示
import numpy as np
import cv2 as cv
def create_RGBA(alpha):
img_path = "4.jpg"
image = cv.imread(img_path, cv.IMREAD_UNCHANGED)
w, h, _ = image.shape
alpha_channel = np.ones((w, h)) * 255
w_alp, h_alp = 100, 100
x, y = 250, 230
alpha_channel[x:x+w_alp, y:y+h_alp] = np.ones((w_alp, h_alp)) * alpha
img = np.zeros((w, h, 4))
img[:,:,0] = image[:, :, 0]
img[:,:,1] = image[:, :, 1]
img[:,:,2] = image[:, :, 2]
img[:,:,3] = alpha_channel
cv.imwrite("img120.png", img)
def main():
alpha = 120 # 0, 120, 255
create_RGBA(alpha)
if __name__== "__main__":
main()
![](https://img-blog.csdnimg.cn/20200921143144221.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvc2VwaF9fTGFncmFuZ2U=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20200921143218898.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvc2VwaF9fTGFncmFuZ2U=,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20200921143303678.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0pvc2VwaF9fTGFncmFuZ2U=,size_16,color_FFFFFF,t_70)