На данный момент мой код принимает изображение в цвете и преобразует его в оттенки серого. Проблема в том, что он делает прозрачные пиксели белыми или черными.
Это то, что у меня есть до сих пор:
import cv2
img = cv2.imread("watch.png",cv2.IMREAD_GRAYSCALE)
cv2.imwrite("gray_watch.png",img)
Вот ссылка для справки: Watch.png
Я обнаружил, что использование только 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" - это цветовой режим. Здесь вы можете найти другие режимы: https://pillow.readthedocs.io/en/3.1.x/handbook/concepts.html#concept-modes