Heim  >  Artikel  >  Backend-Entwicklung  >  Top 10 Bildverarbeitungstools in Python

Top 10 Bildverarbeitungstools in Python

王林
王林nach vorne
2023-04-14 16:10:071584Durchsuche

Top 10 Bildverarbeitungstools in Python

Die heutige Welt ist voll von Daten aller Art, und Bilder sind ein äußerst wichtiger Teil davon. Damit es jedoch nützlich ist, müssen wir diese Bilder verarbeiten. Bei der Bildverarbeitung handelt es sich um den Prozess der Analyse und Bearbeitung digitaler Bilder mit dem Ziel, ihre Qualität zu verbessern oder Informationen aus ihnen zu extrahieren und sie dann auf irgendeine Weise zu verwenden.

Zu den üblichen Aufgaben in der Bildverarbeitung gehören das Anzeigen von Bildern, grundlegende Vorgänge (wie Zuschneiden, Spiegeln, Drehen usw.), Bildsegmentierung, Klassifizierung und Merkmalsextraktion, Bildwiederherstellung und Bilderkennung usw. Python ist die beste Wahl für Bildverarbeitungsaufgaben, da diese wissenschaftliche Programmiersprache immer beliebter wird und zahlreiche hochmoderne Bildverarbeitungstools kostenlos verfügbar sind.

Werfen wir einen Blick auf einige gängige Python-Bibliotheken, die für Bildverarbeitungsaufgaben verwendet werden.

1. scikit Image

scikit-image ist ein Open-Source-Python-Paket, das auf Numpy-Arrays basiert. Es implementiert Algorithmen und Dienstprogramme für Forschung, Bildung und industrielle Anwendungen. Es ist eine ziemlich einfache Bibliothek, selbst für Python-Neulinge. Der Code der Bibliothek ist von sehr hoher Qualität und wurde einem Peer-Review unterzogen und von einer aktiven Gemeinschaft von Freiwilligen geschrieben.

Anwendungsbeispiele: Bildfilterung, Vorlagenabgleich.

Sie können „skimage“ verwenden, um diese Bibliothek zu importieren. Die meisten Funktionen sind in Submodulen zu finden.

import matplotlib.pyplot as plt
%matplotlib inline
from skimage import data,filters
image = data.coins()
# ... or any other NumPy array!
edges = filters.sobel(image)
plt.imshow(edges, cmap='gray')

Top 10 Bildverarbeitungstools in Python

Vorlagenabgleich (mithilfe der Funktion match_template)

Top 10 Bildverarbeitungstools in Python

2, Numpy

Numpy ist eine der Kernbibliotheken der Python-Programmierung und unterstützt Array-Strukturen. Bilder sind im Wesentlichen Standard-Numpy-Arrays, die Pixel von Datenpunkten enthalten. Daher können die Pixelwerte eines Bildes durch die Verwendung grundlegender NumPy-Operationen – wie Slicing, Maskierung und ausgefallene Indizierung – geändert werden. Bilder können mit skimage geladen und mit matplotlib angezeigt werden.

Anwendungsbeispiel: Verwenden Sie Numpy, um Bilder zu desensibilisieren:

import numpy as np
from skimage import data
import matplotlib.pyplot as plt
%matplotlib inline
image = data.camera()
type(image)
numpy.ndarray #Image is a numpy array
mask = image < 87
image[mask]=255
plt.imshow(image, cmap='gray')

Top 10 Bildverarbeitungstools in Python

3, Scipy

Scipy ist ein weiteres wissenschaftliches Kernmodul von Python, genau wie Numpy, es kann für grundlegende Bildverarbeitungs- und Verarbeitungsaufgaben verwendet werden. Erwähnenswert ist, dass das Submodul scipy.ndimage Funktionen bereitstellt, die auf n-dimensionalen NumPy-Arrays arbeiten. Das Paket umfasst derzeit Funktionen wie lineare und nichtlineare Filterung, binäre Morphologie, B-Spline-Interpolation und Objektmessungen.

Anwendungsbeispiel: Verwenden Sie den Gaußschen Filter von SciPy, um das Bild unscharf zu machen:

from scipy import misc,ndimage
face = misc.face()
blurred_face = ndimage.gaussian_filter(face, sigma=3)
very_blurred = ndimage.gaussian_filter(face, sigma=5)
#Results
plt.imshow(<image to be displayed>)

Top 10 Bildverarbeitungstools in Python

4, PIL/ Pillow

PIL (Python Imaging Library) ist eine kostenlose Python-Programmiersprachenbibliothek, die Unterstützung für Öffnen, Verarbeiten und Speichern bietet Unterstützung für viele verschiedene Bilddateiformate. Die Entwicklung ist jedoch ins Stocken geraten und das letzte Update erfolgte im Jahr 2009. Glücklicherweise befindet sich bei PIL ein Fork namens Pillow in der aktiven Entwicklung, der sehr einfach zu installieren ist. Pillow läuft auf allen gängigen Betriebssystemen und unterstützt Python 3. Die Bibliothek enthält grundlegende Bildverarbeitungsfunktionen, einschließlich Punktoperationen, Filterung mithilfe einer Reihe integrierter Faltungskerne und Farbraumkonvertierung.

Anwendungsbeispiel: Verwenden Sie ImageFilter, um Bilder in Pillow zu verbessern:

from PIL import Image, ImageFilter
#Read image
im = Image.open( 'image.jpg' )
#Display image
im.show()
from PIL import ImageEnhance
enh = ImageEnhance.Contrast(im)
enh.enhance(1.8).show("30% more contrast")

Top 10 Bildverarbeitungstools in Python

5, OpenCV-Python

OpenCV (Open Source Computer Vision Library) ist die am häufigsten verwendete Bibliothek für Computer-Vision-Anwendungen. OpenCV-Python ist die Python-API von OpenCV. OpenCV-Python ist nicht nur schnell (da das Backend aus in C/C++ geschriebenem Code besteht), sondern auch einfach zu programmieren und bereitzustellen (dank des Python-Wrappers im Frontend). Dies macht es zu einer hervorragenden Wahl für die Durchführung rechenintensiver Computer-Vision-Programme.

Anwendungsbeispiel: Verwenden Sie Pyramiden, um eine neue Frucht namens „Orapple“-Funktion zu erstellen

Top 10 Bildverarbeitungstools in Python

6. SimpleCV

SimpleCV ist auch ein Open-Source-Framework zum Erstellen von Computer-Vision-Anwendungen. Es bietet Zugriff auf leistungsstarke Computer-Vision-Bibliotheken wie OpenCV, ohne dass Sie sich zunächst mit Bittiefe, Dateiformaten oder Farbräumen vertraut machen müssen. Es ist viel einfacher zu erlernen als OpenCV und wie der Slogan sagt: „Es macht Computer Vision einfach.“ Einige Punkte, die für SimpleCV sprechen, sind:

  • Sogar ein Anfänger kann einfache Bildverarbeitungstests schreiben
  • Kameras, Videodateien, Bilder und Videostreams können alle interagieren

Anwendungsbeispiele

Top 10 Bildverarbeitungstools in Python

7. Mahotas

Mahotas ist eine weitere Computer-Vision- und Bildverarbeitungsbibliothek für Python. Es enthält traditionelle Bildverarbeitungsfunktionen (z. B. Filterung und morphologische Operationen) sowie modernere Computer-Vision-Funktionen zur Merkmalsberechnung (einschließlich Erkennung von Interessenpunkten und lokalen Deskriptoren). Die Schnittstelle ist in Python und damit für eine schnelle Entwicklung geeignet, die Algorithmen sind jedoch in C++ implementiert und auf Geschwindigkeit optimiert. Die Mahotas-Bibliothek ist schnell, ihr Code ist einfach und ihre Abhängigkeiten (von anderen Bibliotheken) sind minimal. Es wird empfohlen, die offizielle Dokumentation zu lesen, um mehr zu erfahren.

Verwendungsbeispiele

Die Mahotas-Bibliothek verwendet einfachen Code, um die Arbeit zu erledigen. Bei der Aufgabe „Findet Wally“ hat Mahotas mit sehr wenig Code großartige Arbeit geleistet.

Top 10 Bildverarbeitungstools in PythonTop 10 Bildverarbeitungstools in Python

8, SimpleITK

ITK (Insight Segmentation and Registration Toolkit) ist ein plattformübergreifendes Open-Source-System, das Entwicklern einen vollständigen Satz an Softwaretools für die Bildanalyse bietet. Unter ihnen ist SimpleITK eine vereinfachte Schicht, die auf ITK aufbaut und darauf abzielt, den Einsatz in Rapid Prototyping, Bildung und Skriptsprachen zu fördern. SimpleITK ist ein Bildanalyse-Toolkit mit einer großen Anzahl von Komponenten, die allgemeine Filtervorgänge, Bildsegmentierung und -registrierung unterstützen. SimpleITK selbst ist in C++ geschrieben, steht aber für eine Vielzahl von Programmiersprachen, einschließlich Python, zur Verfügung.

Hier finden Sie eine Reihe von Jupyter-Notizbüchern, die veranschaulichen, wie Sie SimpleITK für Bildungs- und Forschungsaktivitäten verwenden. Das Notebook demonstriert die Verwendung von SimpleITK für die interaktive Bildanalyse mithilfe der Programmiersprachen Python und R.

Anwendungsbeispiele

Die folgende Animation ist eine Visualisierung des strengen CT/MR-Registrierungsprozesses, der mit SimpleITK und Python erstellt wurde.

Top 10 Bildverarbeitungstools in Python

9. pgmagick

pgmagick ist ein Python-basierter Wrapper für die GraphicsMagick-Bibliothek. Das Bildverarbeitungssystem GraphicsMagick wird manchmal als das Schweizer Taschenmesser der Bildverarbeitung bezeichnet. Es bietet eine leistungsstarke und effiziente Sammlung von Tools und Bibliotheken, die das Lesen, Schreiben und Bearbeiten von Bildern in mehr als 88 Hauptformaten unterstützen, darunter wichtige Formate wie DPX, GIF, JPEG, JPEG-2000, PNG, PDF, PNM und TIFF .

Verwendungsbeispiele: Bildskalierung, Kantenextraktion

Top 10 Bildverarbeitungstools in Python

Bildskalierung

Top 10 Bildverarbeitungstools in Python

Kantenextraktion

10. Pycairo ist eine Reihe von Python-Bindungen für die Grafikbibliothek Kairo. Cairo ist eine 2D-Grafikbibliothek zum Zeichnen von Vektorgrafiken. Vektorgrafiken sind interessant, weil sie bei Größenänderung oder Transformation nicht an Klarheit verlieren. Die Pycairo-Bibliothek kann den Cairo-Befehl von Python aus aufrufen.


Verwendung: Pycairo kann Linien, Grundformen und radiale Verläufe zeichnen.


Top 10 Bildverarbeitungstools in PythonDie oben genannten sind einige kostenlose und hervorragende Python-Bibliotheken für die Bildverarbeitung. Einige davon sind Ihnen bereits bekannt oder haben sie bereits verwendet, andere sind möglicherweise neu für Sie. Dann ist es jetzt an der Zeit, loszulegen und es auszuprobieren!

Das obige ist der detaillierte Inhalt vonTop 10 Bildverarbeitungstools in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen