Bildverarbeitung mit Python (Teil 1)

Bisher habe ich ImageJ, R, Matlab usw. für die Bildverarbeitung verwendet, aber ich habe etwas mit Python (+ OpenCV) versucht.

Python-Installation

Da die Abhängigkeit der Bibliothek problematisch ist, werde ich es genießen, hier Anaconda mit Homebrew zu installieren.

% brew cask install anaconda

Verwenden Sie unter Windows schokoladig, um anocoonda3 zu installieren. Installieren Sie OpenCV nach der Installation von anaconda mithilfe des Verpackungssystems von anaconda.

% conda install --channel https://conda.anaconda.org/menpo opencv3

Starten Sie jupyter und überprüfen Sie, ob OpenCV installiert ist. 20160830001.jpg

Jupiter ist zu bequem. Ich möchte Anaconda nur für Jupiter installieren. Ich möchte es mit Perl und R verwenden.

Laden und Anzeigen von Bildern

Die Datenbank ist scott / tiger emp und das menschliche Gesichtsbild ist Lenna.

Auf der Suche nach Lenna

Laden Sie zunächst das Bild 4.2.04.tiff aus der [SPI-Bilddatenbank] herunter (http://sipi.usc.edu/database/database.php?volume=misc). In Bezug auf das Urheberrecht wird es als "Scans von Zeitschriftenbildern. Das Urheberrecht liegt beim ursprünglichen Verlag oder Fotografen" geschrieben. Wenn Sie Bildverarbeitungstools im Voraus installiert haben, versuchen Sie, den F-Druck vom Typ / usr / local -name "Lenna.tiff" zu finden. Dieser wird möglicherweise unerwartet in einem Verzeichnis gespeichert.

Bildschirm

Informationen zum Laden und Anzeigen von Bildern mit OpenCV finden Sie in der OpenCV-Dokumentation. Deshalb werde ich es auf dem Jupyter-Notebook versuchen. Außerdem cv2.waitKey (0) und dann cv2.destroyAllWindows (). Dies bedeutet jedoch, dass auf die Schlüsseleingabe 0 Millisekunden gewartet wird. In diesem Fall ist 0 Sekunden "keine Zeit angegeben", dh "immer". Es scheint "auf die nächste Tasteneingabe warten" zu bedeuten. Mit anderen Worten, die Anweisung, das Bildfenster offen zu halten, bis eine Schlüsseleingabe erfolgt.

import numpy as np
import cv2
import os.path
lenna = "4.2.04.tiff"
if os.path.exists(lenna):
    img = cv2.imread(lenna)
    cv2.imshow("Lenna", img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

20160830002.jpg

Wenn Sie mehr über diese Lenna erfahren möchten, schauen Sie sich img.shape oder img.size an.

Binarisierung von Bildern

Wenn Sie sich OpenCV Tutorial ansehen, finden Sie den Code für die Binärisierung.

Ich habe versucht, eine Zeile zu setzen, um zu überprüfen, ob eine Bilddatei vorhanden ist, indem ich os.path.exiss () ausgeführt habe.

Wie im Tutorial wird das Bild auch mit matplotlib angezeigt.

import cv2
import numpy as np
import os.path
from matplotlib import pyplot as plt
lenna = "4.2.04.tiff"

if os.path.exists(lenna):
    img = cv2.imread(lenna,0)
    img = cv2.medianBlur(img, 5)
    ret, th1 = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)
    th2 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 11, 2)
    th3 = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THERSH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
    
    titles = ['Original Image', 'Global Thresholding (v = 127)', 'Adaptive Mean Thresholding', 'Adaptive Gaussian Thresholding']
    images = [img, th1, th2, th3]

    for i in range(0, 4):
        plt.subplot(2, 2, i+1), plt.imshow(images[i], 'gray')
        plt.title(titles[i])
        plt.xticks([]), plt.yticks([])

    plt.show()

20160830003.jpg

Versuchen Sie in ähnlicher Weise die Binärisierung mit der Otsu-Methode. Der Code ist nahezu unverändert.

import cv2
import numpy as np
import os.path
from matplotlib import pyplot as plt
lenna = "4.2.04.tiff"
if os.path.exists(lenna):
    img = cv2.imread(lenna,0)
    img = cv2.medianBlur(img,5)
    ret,th = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)
    cv2.imshow("Lenna", th)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

20160830004.jpg

Deshalb konnte ich vorerst die Grundlagen machen.

Dieser Code

Recommended Posts

Bildverarbeitung mit Python (Teil 1)
Bildverarbeitung mit Python (3)
Bildverarbeitung mit Python
[Python] Bildverarbeitung mit Scicit-Image
Python-Bildverarbeitung
Die Bildverarbeitung mit Python 100 klopft an die Binärisierung Nr. 3
100 Bildverarbeitung mit Python Knock # 2 Graustufen
Grundlagen der binärisierten Bildverarbeitung durch Python
Bildverarbeitung mit Python 100 Knock # 10 Medianfilter
Bildverarbeitung mit MyHDL
100 Bildverarbeitung mit Python Knock # 8 Max Pooling
Erste Python-Bildverarbeitung
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 2)
Bildverarbeitung mit Python 100 Knock # 12 Bewegungsfilter
100 Sprachverarbeitungsklopfen mit Python (Kapitel 2, Teil 1)
Zeichnen mit Matrix-Reinventor von Python Image Processing-
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Die Bildverarbeitung mit Python 100 führt zu einem durchschnittlichen Pooling von # 7
Leichte Bildverarbeitung mit Python x OpenCV
Bildverarbeitung mit Python 100 Knock # 9 Gauß-Filter
Bildverarbeitung mit PIL
Bildverarbeitung von Grund auf mit Python (5) Fourier-Transformation
Bildverarbeitung von Grund auf mit Python (4) Konturextraktion
Bildverarbeitung mit Python Environment Setup für Windows
100 Sprachverarbeitungsklopfen mit Python 2015
Python mit freeCodeCamp Teil1 studieren
Angrenzende Bilder mit Python Teil 1
Bildverarbeitung mit PIL (Pillow)
"Apple-Verarbeitung" mit OpenCV3 + Python3
Schaben mit Selen + Python Teil 1
Bildbearbeitung mit Python OpenCV
Akustische Signalverarbeitung mit Python (2)
Sortieren von Bilddateien mit Python (3)
Python studieren mit freeCodeCamp part2
Tweet mit Bild in Python
Bilddateien mit Python sortieren
Nampre mit Python lösen (Teil 2)
Bildverarbeitung mit Python (Pillow)
Bildverarbeitungssammlung in Python
Schaben mit Selen + Python Teil 2
Hinweise zur HDR- und RAW-Bildverarbeitung mit Python
Schneiden Sie ein Bild mit Python aus
Grundlagen der Echtzeit-Bildverarbeitung mit opencv
Spielen Sie handschriftliche Zahlen mit Python Part 1
[Python] Verwenden von OpenCV mit Python (Bildfilterung)
[Python] Einfache Parallelverarbeitung mit Joblib
[Mit Python automatisiert! ] Teil 1: Datei einstellen
100 Sprachverarbeitungsklopfen mit Python (Kapitel 1)
[Python] Verwenden von OpenCV mit Python (Bildtransformation)
100 Sprachverarbeitungsklopfen mit Python (Kapitel 3)
Persönliche Notizen für die Python-Bildverarbeitung
Lassen Sie uns mit Python Image Scraping durchführen
Finden Sie Bildähnlichkeit mit Python + OpenCV
Automatisieren Sie einfache Aufgaben mit Python Part0
[Mit Python automatisiert! ] Teil 2: Dateivorgang
Sende Bild mit Python und speichere mit PHP
Erzeugung von Verlaufsbildern mit Python [1] | np.linspace
[Lass uns mit Python spielen] Bildverarbeitung zu Monochrom und Punkten
[Bildverarbeitung] Posterisierung