Essayez de reproduire un film couleur avec Python

Ce que tu veux faire

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.

L'image originale

sample.jpg

Produit fini

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

Comment ça fonctionne

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.

Résultat d'exécution

Couleur du film: RVB (100,255,100) sample_out2.jpg Couleur du film: RVB (173,216, 230) sample_out2-2.jpg

Travail en échec

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))

Résultat d'exécution

Couleur du film: RVB (100,255,100) sample_out2-1.jpg Couleur du film: RVB (173,216, 230) sample_out2-2.jpg Mur: RVB (0,0,0) sample_out2-3.jpg Après tout, il est globalement blanchâtre.

Résumé

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

Essayez de reproduire un film couleur avec Python
Essayez d'exploiter Facebook avec Python
Essayez de vous connecter à qiita avec Python
Sortir les caractères de couleur en joli avec python
Essayez de gratter avec Python.
Essayez de résoudre le diagramme homme-machine avec Python
Essayez de dessiner une courbe de vie avec python
Essayez de créer un code de "décryptage" en Python
Essayez de générer automatiquement des documents Python avec Sphinx
Essayez de créer un groupe de dièdre avec Python
Essayez de détecter les poissons avec python + OpenCV2.4 (inachevé)
Essayez de défier le sol par récursif
Connectez-vous à BigQuery avec Python
Essayez de résoudre le livre des défis de programmation avec python3
Reproduire l'objectif LightGBM avec python
Faisons un outil de veille de commande avec python
Essayez de comprendre Python soi
Essayez de résoudre le problème d'affectation du médecin de formation avec Python
Essayez la sortie Python avec Haxe 3.2
Connectez-vous à Wikipedia avec Python
Publiez sur Slack avec Python 3
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Essayez d'exécuter Python avec Try Jupyter
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Essayez la reconnaissance faciale avec Python
Essayez d'afficher diverses informations utiles pour le débogage avec python
[AWS] Essayez d'ajouter la bibliothèque Python à la couche avec SAM + Lambda (Python)
Essayez d'ouvrir une sous-fenêtre avec PyQt5 et Python
Essayez d'automatiser le fonctionnement des périphériques réseau avec Python
C'est Halloween donc je vais essayer de le cacher avec Python
Essayez de déchiffrer les caractères déformés dans le nom du fichier joint avec Python
Essayez de gratter avec Python + Beautiful Soup
Python: comment utiliser async avec
Lien pour commencer avec python
[Python] Ecrire dans un fichier csv avec Python
Ravi de vous rencontrer avec python
Essayez la décomposition de valeurs singulières avec Python
Sortie vers un fichier csv avec Python
Essayez de profiler avec ONNX Runtime
Convertir la liste en DataFrame avec python
Conversion MP3 → WAV avec Python
Pour faire une récursion avec Python2
Essayez de calculer Trace en Python
Comment démarrer avec Python
Essayez de convertir la CLI cloudmonkey en python3 -1
Que faire avec la sortie de PYTHON?
Essayez la reconnaissance faciale avec python + OpenCV
Comment calculer la date avec python
Essayez la simulation de contrôle de fréquence avec Python
Publiez facilement sur Twitter avec Python 3
Essayez de produire de l'audio avec M5 STACK
Je veux déboguer avec Python
Les personnes familiarisées avec les programmes Android essaient le traitement multi-thread avec Python
Essayez Python
Essayez de créer un environnement python avec Visual Studio Code et WSL