Pour ceux qui veulent afficher les images côte à côte dès que possible avec matplotlib de Python

Code source

import matplotlib.pyplot as plt
import cv2
import os

root = "./data" #Le dossier qui contient les images. Veuillez changer en conséquence
lsdir = os.listdir(root)

imgs = []
for l in lsdir:
    target = os.path.join(root,l)
    img = cv2.imread(target)
    img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #Conversion des couleurs pour l'affichage dans pyplot
    imgs.append(img)

shownumber = 10 #Nombre d'images à organiser
showaxis = 1

while(showaxis*showaxis < shownumber):
    showaxis += 1

cnt = 0
while(1):
    #limit = 30
    #if cnt >= limit:
    #    break
    fig,axs = plt.subplots(showaxis,showaxis)
    ar = axs.ravel()
    for i in range(showaxis*showaxis):
        ar[i].axis('off')
        if i < shownumber:
            ar[i].imshow(imgs[cnt])
            cnt += 1
    plt.show()

Afficher le résultat

shownumber = 9

image.png

shownumber = 10

image.png

Pourquoi j'ai écrit cet article

«Chaque fois que j'affiche une image, j'ai l'impression de me poser des questions sur matplotlib, alors je voulais me fixer une norme.

Description du code

--Spécifiez un dossier et lisez-le avec cv2.imread, et créez-en un tableau appelé ʻimgs. --OpenCV est lu au format BGR, donc convertissez-le au format RVB avec cv2.cvtColor`

while(showaxis*showaxis < shownumber):
    showaxis += 1

--Préparez un graphique avec plt.subplots avec autant de lignes et de colonnes que show axis ―― Comme il est difficile de spécifier la position verticale et la position horizontale de ʻaxs, créez une série de tableaux avec ʻaxs.ravel () .

Notez qu'en raison de la structure du code, une erreur de référence hors plage se produira définitivement à la fin. J'ai écrit le processus d'évasion dans les commentaires.

Recommended Posts

Pour ceux qui veulent afficher les images côte à côte dès que possible avec matplotlib de Python
Je souhaite afficher plusieurs images avec matplotlib.
Pour ceux qui veulent écrire Python avec vim
Pour ceux qui souhaitent démarrer l'apprentissage automatique avec TensorFlow2
[Google Colab] Je souhaite afficher plusieurs images côte à côte dans une vignette
Comment afficher des images en continu avec matplotlib Memo
Rejoignez Azure avec Go ~ Pour ceux qui veulent démarrer et connaître Azure avec Go ~
Pour ceux qui veulent apprendre Excel VBA et se lancer avec Python
5 raisons pour lesquelles le traitement est utile pour ceux qui veulent se lancer avec Python
Points ennuyeux pour ceux qui veulent présenter Ansible
La première étape de l'apprentissage automatique ~ Pour ceux qui veulent essayer l'implémentation avec python ~
Construction d'environnement pour ceux qui veulent étudier Python facilement avec VSCode (pour Mac)
Référence de référence pour ceux qui veulent coder avec Rhinoceros / Grasshopper
Une procédure de création d'environnement moderne pour ceux qui veulent se lancer immédiatement avec Python
Présentation de l'utilisation d'argparse pour les personnes décontractées avec le moins d'effort possible
[Phrase courte] easygui pour ceux qui veulent utiliser une interface graphique simple avec Python très facilement
[Version 2020 pour les débutants] Méthode d'étude recommandée pour ceux qui souhaitent devenir eux-mêmes ingénieur en IA
Procédure d'inscription PyPI pour ceux qui veulent faire leurs débuts PyPI
Articles en vrac pour ceux qui veulent commencer le traitement du langage naturel
Technique Python pour ceux qui veulent se débarrasser des débutants
Un mémo pour ceux qui veulent une communication de socket rapide avec netcat
J'ai analysé les données Airbnb pour ceux qui veulent rester à Amsterdam
Décidez pour qui voter par loterie
[python] Comment afficher les éléments de la liste côte à côte
Pour ceux qui débutent en programmation mais qui ont décidé d'analyser les données avec Python