python opencv如何读取透明png图片以及如何编辑透明度

python OpenCV中

cv2.imread(img_path)默认会读取BGR图像,即3通道图像,读出的图像尺寸为h,w,c。cv2.resize(img, (w,h)),resize中的尺寸是w,h和imread读出来的hw是相反的

cv2.imread(img_path,0): 读取灰度图像

cv2.imread(img_path, cv2.IMREAD_UNCHANGED) : 读取BGR+alpha通道,共4通道原始图(注意,png格式图像有4个通道,jpg图像本身只有3个通道,只会读出3通道),alpha通道用于表示透明度,使用该方法读取则能读到png图像中的透明度。

 

实际上,我们也可以手动对alpha通道进行修改,从而修改图片的透明程度,或者直接在BGR图像上添加alpha通道,来添加透明度。

img = cv2.imread(img_path)

b_channel, g_channel, r_channel = cv2.split(img)

alpha_channel = np.ones(b_channel.shape, dtype=b_channel.dtype) * 100  # alpha通道每个像素点区间为[0,255], 0为完全透明,255是完全不透明

img_BGRA = cv2.merge((b_channel, g_channel, r_channel, alpha_channel))

cv2.imwrite(img_path)

 

你可能感兴趣的:(python,opencv,透明度,png)