python将png图片灰度化并保持透明的地方
import cv2
import numpy as np
def convert_to_grayscale_with_alpha(input_image_path, output_image_path):
# 读取彩色图像,包括alpha通道
image = cv2.imread(input_image_path, cv2.IMREAD_UNCHANGED)
if image is None:
print(f"Error: Could not read the image at {input_image_path}")
return
# 分离颜色通道和alpha通道
b, g, r, a = cv2.split(image)
# 将BGR图像转换为灰度图像
grayscale_image = cv2.cvtColor(image, cv2.COLOR_BGRA2GRAY)
# 创建一个与原图大小相同、且所有通道都填充灰度值的图像
grayscale_with_alpha = cv2.merge((grayscale_image, grayscale_image, grayscale_image, a))
# 保存结果
cv2.imwrite(output_image_path, grayscale_with_alpha)
print(f"Grayscale image with alpha saved to {output_image_path}")
# 使用示例
input_image_path = r"C:\Users\admins\Desktop\pz.png" # 替换为你的输入图片路径
output_image_path = r'C:\Users\admins\Desktop\grayscale_output_image.png' # 输出灰度图的保存路径
convert_to_grayscale_with_alpha(input_image_path, output_image_path)