Ceci est un exemple de programme qui peint la partie transparente de l'image en blanc. Lorsque j'ai cherché sur le net, j'ai trouvé des moyens de numériser des pixels avec une instruction for ou de combiner des canaux α après l'acquisition de RVB. J'ai pu l'implémenter en quelques lignes sans faire un traitement aussi compliqué, je vais donc le laisser dans l'article comme mémo pour moi-même.
Peignez l'image transparente suivante en noir (car vous ne pouvez pas voir le changement s'il est blanc).
-*- coding:utf-8 -*-
import cv2
import numpy as np
# Lire l'image d'entrée (lire également le canal α en spécifiant -1)
img = cv2.imread("kangaru.png ", -1)
# Obtenez l'index où le canal α est 0
ex) ([0, 1, 3, 3, ...],[2, 4, 55, 66, ...])
# C'est un taple (longueur 2) dans lequel la colonne et la ligne sont stockées respectivement.
index = np.where(img[:, :, 3] == 0)
# Peinture blanche
img[index] = [255, 255, 255, 255]
# production
cv2.imwrite("output.png ", img)
Vous pouvez facilement acquérir le canal α et peindre la partie transparente en blanc.
Recommended Posts