Ce que je pense créer cette fois-ci, c'est un film qui change la tonalité de couleur de l'image entière, qui est attachée à une caméra. Si vous utilisez le module Numpy, vous pouvez facilement créer 3 films couleurs primaires, mais je voulais augmenter la polyvalence et prendre en charge toutes les couleurs.
from PIL import Image
import numpy as np
def color_filter(img_source, rgb):
#Convertir en un vrai tableau
img_source=np.array(img_source, dtype='float16')
#Le RVB du film est égal à 0~255
if max(rgb)>255 or min(rgb)<0:
return Image.fromarray(np.unit8(img_source))
#Appliquer un film RVB
img_source[:,:,0]*=rgb[0]/255
img_source[:,:,1]*=rgb[1]/255
img_source[:,:,2]*=rgb[2]/255
#Sortie après conversion en classe Image
img_out=Image.fromarray(np.uint8(img_source))
return img_out
La valeur RVB de chaque pixel est multipliée par le rapport RVB du film à 255 (valeur RVB maximale). La gamme de couleurs peut être modifiée de l'image d'origine au noir absolu. Le fait est que le film, lorsqu'il est noir, est un mur.
Couleur du film: RVB (100,255,100) Couleur du film: RVB (173,216, 230)
Au début, je pensais qu'il serait possible de prendre la moyenne avec la valeur du filtre au lieu du ratio, donc je posterai également le résultat. Puisque le mur n'a pas pu être reproduit, ce sera un échec.
from PIL import Image
import numpy as np
def color_filter2(img_source, rgb):
img_source=np.array(img_source, dtype="float16")
#Le RVB du film est égal à 0~255
if max(rgb)>255 or min(rgb)<0:
return Image.fromarray(np.unit8(img_source))
#Appliquer un film RVB
img_source[:,:,0]+=rgb[0]
img_source[:,:,0]/=2.0
img_source[:,:,1]+=rgb[1]
img_source[:,:,1]/=2.0
img_source[:,:,2]+=rgb[2]
img_source[:,:,2]/=2.0
#Sortie après conversion en classe Image
return Image.fromarray(np.uint8(img_source))
Couleur du film: RVB (100,255,100) Couleur du film: RVB (173,216, 230) Mur: RVB (0,0,0) Après tout, il est globalement blanchâtre.
Je pense qu'il y a une demande pour les deux, alors essayez différentes choses. J'espère que vous pourrez l'utiliser pour gonfler les données de reconnaissance d'image. (Ajout) Pour une raison quelconque, j'ai collé le code quand j'ai oublié la notation de tranche ... Celle que je suis en train de coller est plus claire.
Recommended Posts