Как я могу преобразовать изображение в оттенки серого, сохраняя прозрачность, используя cv2?

1

На данный момент мой код принимает изображение в цвете и преобразует его в оттенки серого. Проблема в том, что он делает прозрачные пиксели белыми или черными.

Это то, что у меня есть до сих пор:

import cv2

img = cv2.imread("watch.png",cv2.IMREAD_GRAYSCALE)
cv2.imwrite("gray_watch.png",img)

Вот ссылка для справки: Watch.png

Теги:
cv2
grayscale
transparency
transparent

1 ответ

0
Лучший ответ

Я обнаружил, что использование только 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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню