Python 如何在使用cv2保持透明度的同时将图像转换为灰度?

Python 如何在使用cv2保持透明度的同时将图像转换为灰度?,python,transparency,transparent,grayscale,cv2,Python,Transparency,Transparent,Grayscale,Cv2,目前,我的代码以彩色拍摄图像并将其转换为灰度。问题是它使透明像素变成白色或黑色 这就是我到目前为止所做的: import cv2 img = cv2.imread("watch.png",cv2.IMREAD_GRAYSCALE) cv2.imwrite("gray_watch.png",img) 以下是图片供参考: 我发现只有使用PIL才能实现这一点: from PIL import Image image_file = Image.open("convert_image.png") #

目前,我的代码以彩色拍摄图像并将其转换为灰度。问题是它使透明像素变成白色或黑色

这就是我到目前为止所做的:

import cv2

img = cv2.imread("watch.png",cv2.IMREAD_GRAYSCALE)
cv2.imwrite("gray_watch.png",img)
以下是图片供参考:

我发现只有使用PIL才能实现这一点:

from PIL import Image

image_file = Image.open("convert_image.png") # opens image  
image_file = image_file.convert('LA') # converts to grayscale w/ alpha
image_file.save('output_image.png') # saves image result into new file
这也保留了图像的透明度。
“LA”是一种颜色模式。您可以在此处找到其他模式:

谢谢您的评论!我是个新手,所以请原谅我有这么多绒毛。我把它编辑成了赤裸裸的骨架。让我知道你想到了什么。再次感谢!