In einem Zeitungsartikel aus dem Jahr 1911, der sich mit Journalismus und Öffentlichkeitsarbeit befasste, und der Zeitungsherausgeberin Tess Flanders zitierend, erschien folgender Ausdruck:
Verwenden Sie ein Bild. Es sind tausend Worte wert.
Ein ähnlicher Satz erschien auch in einer Zeitungswerbung von 1913 für das Piqua Auto Supply House:
Ein Blick sagt mehr als tausend Worte.
Ich werde nicht tief in die Geschichte eingehen. Diese Einführung war nur ein bisschen Spaß und zeigt, wie die Phrasen einen Hinweis darauf geben, wie wichtig Bilder sind und wie sie wirklich viele Informationen in sie integrieren können. Ich bin sicher, die meisten von uns wissen das, besonders wenn wir feststellen, dass ein Bild mehr als nur reiner Text in unserem Kopf bleiben kann.
Zweifellos spielen Bilder in unserer Kommunikation eine wichtige Rolle - nicht nur allgemeine Bilder, sondern auch Spezialfotos wie medizinische Bilder (z. B. MRI, Ultraschall usw.)..
Wir können Fotos durch verschiedene Erfassungsgeräte erhalten. Zum Beispiel werden Bilder des Melanoms (Hautkrebs) mit einem Dermatoskop abgerufen. Wir fotografieren uns oder Freunde mit einer Digitalkamera oder einem Smartphone. Manchmal bemerken wir jedoch einige Probleme in unseren Bildern, wie zum Beispiel Unschärfe, die möglicherweise auf das verwendete Aufnahmegerät zurückzuführen sind.
Aber was tun in diesem Fall? Sie haben einige medizinische Bilder zur Analyse geschickt, und Sie haben nicht die Wahl, diese Bilder erneut zu erstellen. Selbst wenn Sie ein Bild erneut betrachten, ändert sich die angezeigte Auflösung nicht und auch keine anderen Probleme, mit denen Sie konfrontiert sind. Bildverarbeitung kommt in solchen Situationen ins Spiel.
Mir gefiel der Begriff Bildverarbeitung wurde in Oxford Wörterbüchern definiert:
Die Analyse und Manipulation eines digitalisierten Bildes, insbesondere zur Verbesserung seiner Qualität.
"Digitalisiertes Bild" bezieht sich hier auf die Tatsache, dass das Bild betrachtet wird Digital, das heißt, es wird von einem Computer verarbeitet.
Wenn Sie den Computer in diesem Spiel installieren, müssen Sie eine Programmiersprache verwenden. In diesem Tutorial werde ich Ihnen zeigen, wie wir die Python-Programmiersprache verwenden können, um Bildverarbeitungsaufgaben für ein Bild auszuführen.
Die Bibliothek, die wir zur Durchführung unserer Bildverarbeitungsaufgaben verwenden werden, ist Scikit-Bild
. Nach dem Papier-Scikit-Bild: Bildverarbeitung in Python:
scikit-image ist eine Bildverarbeitungsbibliothek, die Algorithmen und Dienstprogramme für die Verwendung in Forschung, Ausbildung und Industrieanwendungen implementiert. Es steht unter der liberalen Modified BSD Open Source-Lizenz zur Verfügung, bietet eine gut dokumentierte API in der Programmiersprache Python und wird von einem aktiven, internationalen Team von Mitarbeitern entwickelt.
Das erste, was wir tun müssen, ist zu installieren Scikit-Bild
. Anweisungen zum Installieren der Bibliothek finden Sie auf der Download-Seite. In diesem Lernprogramm werde ich Ihnen zeigen, wie Sie die Bibliothek auf einem Mac OS X-Computer installieren. Dies ist, was ich gerade beim Schreiben dieses Lernprogramms verwende.
Wie Scikit-Bild
ist eine externe Bibliothek, das erste, was wir tun müssen, ist Installieren diese Bibliothek. Dafür verwende ich pip, das (basierend auf Wikipedia):
Ein Paketverwaltungssystem zum Installieren und Verwalten von in Python geschriebenen Softwarepaketen. Viele Pakete sind im Python Package Index (PyPI) zu finden..
Für die Installation können Sie die im Python Packaging User Guide genannten Schritte ausführen Pip
, aber wenn du hast Python 2.7.9
und höher oder Python 3.4
und höher hast du schon Pip
!
Scikit-Bild
Jetzt kann einfach installiert werden, indem Sie den folgenden Befehl eingeben (im Mac OS X-Terminal):
pip install -U scikit-image
Die Bibliothek ist nun installiert und bereit für die Bildverarbeitung!
Das Testbild, das wir in diesem Tutorial verwenden werden, ist baboon.png. Laden Sie es herunter, oder verwenden Sie einfach das Bild Ihrer Wahl. Das Bild sieht wie folgt aus:
Manchmal müssen wir die Abmessungen eines Bildes kennen (mehr dazu im Filterabschnitt). Um die Abmessungen unseres Bildes zu überprüfen, können wir das verwenden guess_spatial_dimensions ()
Methode wie folgt:
Von der Skimage importieren Sie io die Farbe img = io.imread ('baboon.png') dimensions = color.guess_spatial_dimensions (img) Druckmaße
Die Ausgabe des obigen Skripts lautet 3
, Das bedeutet, dass wir ein Bild haben, das aus drei räumlichen Dimensionen besteht.
Im obigen Abschnitt haben wir festgestellt, dass unser Bild ein 3D-Array-Bild ist (im RGBA-Format mit der Form) (…,…, 4)
). Woher wusste ich, dass es sich um ein RGBA-Format handelt? Sie können einfach Folgendes tun:
import skimage.io als io aus skimage.color import rgb2gray img = io.imread ('baboon.png') print img.shape
In diesem Fall erhalten Sie diese Ausgabe: (512, 512, 4)
.
In diesem Abschnitt möchten wir das originale farbige Bild von baboon.png in ein Graustufen-2D-Bild (Schwarzweiß) konvertieren. Dies kann einfach mit dem folgenden Skript durchgeführt werden:
skimage.io als io aus skimage.color importieren import rgb2gray img = io.imread ('baboon.png') img_grayscale = rgb2gray (img)
Fahren wir fort und speichern Sie das neue Bild (Graustufen) in einer Datei. Dies kann mit der imsave ()
Funktion wie folgt (Beachten Sie, dass sich das neue Bild in der Datei befindet Pavian-gs.png
):
io.imsave ('baboon-gs.png', img_grayscale)
Um die Abmessungen des Bildes zu überprüfen, können Sie das Skript im vorherigen Abschnitt verwenden. In diesem Fall erhalten Sie es 2
ist zurückgekommen. Oder du kannst verwenden img_grayscale.shape
, was ergibt in 512 x 512
. Wir haben jetzt ein 2D-Bild.
Um das neue Graustufenbild anzuzeigen, fügen Sie am Ende des Skripts Folgendes hinzu:
show_grayscale = io.imshow (img_grayscale) io.show ()
Das Ergebnis sieht so aus:
In der Bildverarbeitung, Filterung wird ausgeführt, um einige Verbesserungen im Bild vorzunehmen. Im Allgemeinen umfasst das Filtern die folgenden Vorgänge: Kantenanhebung, Schärfen und Glätten.
In diesem Abschnitt werde ich Ihnen zeigen, wie wir den Sobel-Filter auf unser Image anwenden und sehen können, wie die Ausgabe nach einer solchen Operation aussieht. Ich werde das auf der Titelseite der Website von scikit-image gezeigte Beispiel verwenden, das jedoch auf unser Bild angewendet wird.
Das Skript zum Anwenden des Sobel-Filters auf unser Bild sieht wie folgt aus:
io.imread ('baboon.png') kanten = filters.sobel (img) io.imshow (kanten) io.show ()
Haben Sie beim Ausführen des Skripts Probleme festgestellt? Ja, die Operation konnte nicht angewendet werden, da das Bild ein 2D-Bild sein muss. Also anstatt zu verwenden Pavian.png
, Wir müssen unser 2D-Bild verwenden, Pavian-gs.png
. Die Ausgabe dieser Operation sieht folgendermaßen aus:
Es gibt viele Bildverarbeitungsoperationen und die Scikit-Bild
Die Python-Bibliothek bietet uns viele interessante Operationen, die wir an unseren Bildern durchführen können. Weitere Bildverarbeitungsvorgänge mit dieser Bibliothek finden Sie auf der Website für Scikit-Bilder.
Lernen Sie Python mit unserem kompletten Python-Tutorial, egal ob Sie gerade erst anfangen oder ein erfahrener Programmierer sind, der neue Fähigkeiten erlernen möchte.