@Warlordofchuvashia

Прозрачный цвет цветовых пикселей. как сделать?

Дайте пожалуйста совет с помощью чего сделать пиксели прозрачными а снаружи области оставить изображение цветным, а также другой вариант, когда в области пикселей будет цветное изображение а снаружи должно стать все черно-белым. Вот пример исходника когда изображение будет закрашено пикселями 100х100 в определенном сегменте, а как сделать его прозрачным я не понимаю помогите пожалуйста....

import cv2 
from matplotlib import pyplot as plt 
import numpy as np 
from google.colab.patches import cv2_imshow
img = cv2.imread('/content/2 (1).jpg')
img[100:200, 150:250]=[0, 0, 254]
cv2_inwrite(/content/2 (1).jpg, im)
cv2_imshow(img)


https://russianblogs.com/article/1885953659/ вот здесь примерно показано сие решение но цвет желтый а нужно черно-белый. Как это сделать ?
  • Вопрос задан
  • 539 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
cv2_inwrite(/content/2 (1).jpeg, im)
Во-первых, куда кавычки подевал?
Во-вторых, jpeg не поддерживает прозрачность.
В-третьих, обычное изображение - это массив вида (H, W, 3), где W и H - ширина и высота в пикселях, а 3 - каналы RGB.
Тебе нужно создать изображение вида (H, W, 4), скопировать в него твоё изображение в первые три канала, затем заполнить последний канал значениями прозрачности (255 для совсем непрозрачных, 0 для совсем прозрачных).
Так как cv2 хранит писксели в массиве numpy, читай туториалы по работе с массивами numpy, чтобы понять, как это сделать.
Затем сохрани изображение в формате, поддерживающем прозрачность, например в PNG.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы