Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 3 Écrire dans un fichier

Conseils pour les débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes

Conseils pour les débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 2 Traiter plusieurs fichiers

Ensuite, j'écrirai le contenu pour que les débutants en Python puissent jouer avec l'exemple de Scikit-image avec une légère modification.

Continuez vers Coupe normalisée

sphx_glr_plot_ncut_001.png

Sera à l'ordre du jour.

Dans [Astuces 2 pour les débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes, en traitant plusieurs fichiers], nous avons pu traiter diverses images.

Cependant, vous pouvez être insatisfait car les résultats ne peuvent pas être enregistrés dans le fichier tels quels.

Je voudrais donc vous donner quelques conseils pour enregistrer dans un fichier.

** Image OpenCV-Save avec Python **

cv2.imwrite("out.png ", img) OpenCV-Python Tutorials >> Getting Started with Images

** Enregistrer l'image en tant que fichier de numéro de série **

python


for  i in range(len(names)):
    img = cv2.imread(names[i])
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    oname = "gray_%04d.png "  % i
    cv2.imwrite(oname, gray)

La fonction équivalente au formatage de prinft () / sprinft () / fprintf () en langage C est Opération de formatage de chaîne / bibliothèque standard Python C'est dedans.

** Opérations liées aux répertoires et aux noms de fichiers **

os.path.dirname() os.path.basename() os.path.splitext() os.path.join()

Bibliothèque standard Python / os.path - opération de nom de chemin commun

Si le répertoire de destination de sortie odir n'existe pas Il est courant de créer un répertoire comme suit:

python


if not os.path.isdir(odir):
    os.makedirs(odir)

Bibliothèque standard Python / os - interface de système d'exploitation divers

os.makedirs (chemin [, mode]) Fonction de création de répertoire récursive. Similaire à mkdir (), mais crée tous les répertoires intermédiaires nécessaires pour créer le répertoire feuille.

oname = os.path.join(odir, "img_%05d.png " % i) Si vous incluez le répertoire de sortie dans le nom du fichier de sortie comme Vous pouvez générer une sortie dans un répertoire autre que le répertoire d'exécution du script.

** Opérations liées au remplacement de chaîne **

Le nom du fichier de sortie peut également être généré à partir du nom du fichier d'entrée par la fonction de remplacement. La chaîne a une méthode replace () qui renvoie la chaîne remplacée en tant que valeur de retour. replace(old, new[, count]) Bibliothèque standard Python / méthodes de chaîne

Vous pouvez utiliser ces fonctions pour définir librement le nom du fichier de destination de sortie.

Tâche:

"Astuce: Traitons plusieurs fichiers en utilisant for name dans glob.glob (" * .jpg "):" Essayons d'enregistrer le résultat dans un fichier basé sur l'exemple illustré dans. Condition: Créez un répertoire de destination de sortie "out" et enregistrez-y le fichier. Condition: Pour l'entrée "image.jpg ", enregistrez-la sous le nom de fichier "out / image_ncut.png ".

Vous devriez être capable de coder avec les conseils donnés jusqu'à présent. Profitez des bibliothèques OpenCV-Python, scikit-image et scikit-learn, même si vous êtes nouveau dans Python.

** Remarque: **

-Lors de l'écriture d'un délimiteur de répertoire en Python, vous pouvez utiliser le caractère "/" comme "abc / def.txt" même sous Windows. -Si vous souhaitez utiliser le délimiteur avec "", il est pratique d'ajouter le symbole r avant "" comme name = r "abc \ def.txt". Dans ce cas, vous n'avez pas besoin d'écrire name = "abc \\ def.txt" (deux caractères "" sont écrits).

Dans Python 3

https://docs.python.jp/3/library/pathlib.html Semble être meilleur à utiliser.

python


# -*- coding: utf-8 -*-
# pylint: disable=C0103
import pathlib
from skimage import io, segmentation, color
from skimage.future import graph

def plotNcut(img):
    """
    img: color img

    """

    labels1 = segmentation.slic(img, compactness=30, n_segments=400)
    g = graph.rag_mean_color(img, labels1, mode='similarity')
    labels2 = graph.cut_normalized(labels1, g)
    return color.label2rgb(labels2, img, kind='avg'), labels2

if __name__ == "__main__":
    oDir = pathlib.Path("out")
    if not oDir.is_dir():
       oDir.mkdir() 
    for p in pathlib.Path("../images").glob("*.png "):
        print(p)
        
        oname = oDir.joinpath(p.with_suffix(".jpg ").name)
        img = io.imread(p)
        out, _ = plotNcut(img)
        io.imsave(str(oname), out)
        print(oname)

Hint 4 Use GUI

Recommended Posts

Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 3 Écrire dans un fichier
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 4 Utiliser l'interface graphique
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image par eux-mêmes
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 5 Incorporer dans les applications réseau
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 7 Comment créer un module
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 9 Utilisation à partir du langage C
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 6 Améliorer le code Python
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 2 Traiter plusieurs fichiers
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 8 Mesure du temps de traitement et profileur
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
Je veux écrire dans un fichier avec Python
Utilisez un langage de script pour une vie C ++ confortable-OpenCV-Port Python vers C ++ -
[Python] Ecrire dans un fichier csv avec Python
Web scraping pour les débutants en Python (1)
Web scraping pour les débutants en Python (4) -1
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
[Python] Organisation de l'utilisation des instructions
Comment utiliser "deque" pour les données Python
Un manuel pour les débutants réalisé par des débutants Python
J'ai créé un conteneur Docker pour utiliser JUMAN ++, KNP, python (pour pyKNP).
[Python] Il était très pratique d'utiliser la classe Python pour le programme ROS.
Erreur due à UnicodeDecodeError lors de la lecture d'un fichier CSV avec Python [Pour les débutants]
Mémo n ° 4 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Comment lire un fichier CSV avec Python 2/3
Le moyen le plus rapide pour les débutants de maîtriser Python
Python pour les super débutants Super débutants Python # Facile à éliminer
Conseils pour ceux qui ne savent pas comment utiliser is et == en Python
Comment créer un fichier JSON en Python
[Python] Combiner des listes contenant des nombres en chaînes et les écrire dans un fichier de sortie
Mémo n ° 1 que les débutants Python lisent "Explication détaillée de la grammaire Python"
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ① ~
Comment utiliser les outils d'analyse de données pour les débutants
Comment écrire une instruction ShellScript Bash for
Exporter la version Python3 OpenCV KeyPoint dans un fichier
Script Python pour obtenir une liste d'exemples d'entrée pour le concours AtCoder
Recherche d'un moyen efficace d'écrire un Dockerfile avec Python avec de la poésie
Mémo n ° 7 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Introduction à la programmation (Python) TA Tendency pour les débutants
Mémo n ° 6 pour les débutants Python à lire "Explication détaillée de la grammaire Python"
Comment rendre le Python des débutants plus rapide [numpy]
~ Conseils pour les débutants de Python donnés avec amour par Pythonista ② ~
Mémo n ° 5 que les débutants Python lisent "Explication détaillée de la grammaire Python"
Comment utiliser pip, un système de gestion de paquets indispensable pour utiliser Python
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
Un script python qui souhaite utiliser l'heure de démarrage / fin de Mac pour la gestion des présences
Comment utiliser NUITKA-Utilities hinted-compilation pour créer facilement un fichier exécutable à partir d'un script Python
Créer un ensemble de données d'images à utiliser pour la formation
[BigQuery] Comment utiliser l'API de BigQuery pour Python -Création de table-
Web scraping pour les débutants en Python (1) Version améliorée
Analyser une chaîne JSON écrite dans un fichier en Python
Écrire sur la création d'un environnement Python pour l'écriture de Qiita Qiita
Comment convertir le type Python # pour les super débutants de Python: str
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Je veux écrire en Python! (2) Écrivons un test
Comment écrire un type liste / dictionnaire de Python3
Un mémorandum pour exécuter un script python dans un fichier bat
[Introduction à python] Introduction rapide à Python pour les programmeurs C ++ occupés
Je veux échantillonner au hasard un fichier avec Python
[Python] Comment écrire une docstring conforme à PEP8