Génération d'images dégradées avec Python [1] | np.linspace

introduction

Cette fois, je vais générer une image dégradée avec python en me référant à cet article.

Génération d'images dégradées

Cette fois, nous allons générer une image en utilisant deux fonctions.

gradation_2d_color


def gradation_2d_color(start, stop, size, is_horizontal):
    if is_horizontal:
        return np.tile(np.linspace(start, stop, size[1]), (size[0], 1))
    else:
        return np.tile(np.linspace(start, stop, size[0]), (size[1], 1)).T

À l'aide de np.linspace, créez un tableau unidimensionnel de longueur hauteur (ou largeur) qui stocke les valeurs de la séquence de nombres d'égalité obtenue en divisant la plage du début à la fin par le nombre de hauteur (ou largeur), et créez-le avec np.tile. Crée un tableau bidimensionnel de longueur largeur (ou hauteur) qui est dupliqué et stocké par le nombre de largeur (ou hauteur). ・ Début: valeur du pixel de départ ・ Stop: valeur de pixel de fin ・ Taille: taille de l'image [hauteur, largeur] ・ Est_horizontal: Vrai → Changement de gradation horizontale / Faux → Changement de gradation verticale

gradation_3d_img


def gradation_3d_img(start_list, stop_list, size, is_horizontal_list):
    result = np.zeros((size[0], size[1], len(start_list)), dtype=np.float)

    for i, (start, stop, is_horizontal) in enumerate(zip(start_list, stop_list, is_horizontal_list)):
        result[:, :, i] = gradation_2d_color(start, stop, size, is_horizontal)

    return result

Passez la liste correspondant à chaque rgb. Le premier élément est le composant r, le deuxième élément est le composant g et le troisième élément est le composant b. -Start_list: Liste des valeurs de pixel de départ -Stop_list: Liste des valeurs de pixel de fin ・ Taille: Liste des tailles d'image ・ Is_horizontal_list: Liste des directions de changement

Utilisez ces fonctions pour générer une image dégradée.

main


    size = [400,500] #height, width
    #Horizontalement noir → blanc
    img = gradation_3d_img([0,0,0], [255,255,255], size, [True,True,True])

    img = img.astype(np.uint8)
    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
    cv2.imwrite('out.png', img)

Image de sortie

J'ai essayé d'autres paramètres avec différentes valeurs, avec une taille d'image réglée sur (400 500).

La couleur change continuellement de «rgb (0,0,0)» à «rgb (255,255,255)» dans le sens horizontal. La couleur change continuellement de «rgb (0,0,0)» à «rgb (255,255,255)» dans le sens vertical. La couleur change continuellement de «rgb (0,255,255)» à «rgb (255,255,255)» dans le sens vertical. La couleur change continuellement de «rgb (255,0,0)» à «rgb (0,255,255)» dans le sens horizontal. Lorsque la direction de changement de r est définie sur la direction verticale ↓, elle change maintenant dans la direction diagonale. Spécifiquement, la couleur change de "rgb (0,0,0)" à "rgb (255,255,255)" dans la direction diagonalement inférieure droite ↘︎, et "rgb (255,0,0)" dans la direction diagonale supérieure droite ↗︎. La couleur passe de `rgb (0,255,255)`. Ensuite, si la direction de changement de r et g est définie sur la direction verticale ↓ La couleur passe de «rgb (255,255,0)» à »rgb (0,0,255)« dans la direction diagonale vers le haut ↗︎.

Tâches futures

Cette gradation est exprimée en utilisant np.linspace qui génère une séquence d'égalité. Je pense que vous pouvez exprimer la gradation dans le sens où la valeur numérique change continuellement. Cependant, la question s'est posée que d'autres changements de gradation peuvent être exprimés numériquement. La prochaine fois, j'écrirai à ce sujet.

Recommended Posts

Génération d'images dégradées avec Python [1] | np.linspace
Traitement d'image avec Python
[Petite histoire] Tester la génération d'images avec Python / OpenCV
Traitement d'image avec Python (partie 2)
Édition d'image avec python OpenCV
Tri des fichiers image avec Python (2)
Tri des fichiers image avec Python (3)
Traitement d'image avec Python (partie 1)
Tweet avec image en Python
Tri des fichiers image avec Python
Traitement d'image avec Python (3)
Génération de légende d'image avec Chainer
[Python] Traitement d'image avec scicit-image
Génération d'images JPEG en spécifiant la qualité avec Python + OpenCV
Découpez une image avec python
[Python] Utilisation d'OpenCV avec Python (filtrage d'image)
[Python] Utilisation d'OpenCV avec Python (transformation d'image)
Traitement d'image avec la binarisation Python 100 knocks # 3
Faisons du scraping d'images avec Python
Générer un mot de passe pour le manuel avec python
Génération de jetons de contre-mesure CSRF avec Python
Trouver la similitude d'image avec Python + OpenCV
100 traitement d'image par Python Knock # 2 Échelle de gris
Envoyer l'image avec python et enregistrer avec php
Bases du traitement d'images binarisées par Python
Traitement d'image par Python 100 knock # 10 filtre médian
mail html avec image à envoyer avec python
Créez une image factice avec Python + PIL.
100 traitement d'image avec Python Knock # 8 Max Pooling
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Traitement d'image avec Python et OpenCV [Tone Curve]
Traitement d'image par Python 100 knock # 12 motion filter
Acquisition d'images depuis une caméra avec Python + OpenCV
Dessin avec Matrix-Reinventor of Python Image Processing-
Essayez facilement la génération automatique d'images avec DCGAN-tensor flow
Traitez facilement des images en Python avec Pillow
Traitement d'image avec Python 100 knocks # 7 pooling moyen
Traitement d'image léger avec Python x OpenCV
Traitement d'image par Python 100 knock # 9 Filtre Gaussien
Exemple de conversion en ondelettes d'images en Python
FizzBuzz en Python3
Grattage avec Python
traitement d'image python
Statistiques avec python
Grattage avec Python
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
python commence par ()
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
J'ai essayé de "lisser" l'image avec Python + OpenCV
Convertir un PDF en image (JPEG / PNG) avec Python
J'ai essayé de "différencier" l'image avec Python + OpenCV
Créer un papier peint à pois avec la bibliothèque d'images Python
Traitement d'image à partir de zéro avec python (5) Transformation de Fourier