Matplotlib ist eine vielseitige Python-Bibliothek, die für ihre Datenvisualisierungsfähigkeiten bekannt ist. Über das Plotten von Daten hinaus zeichnet sie sich durch die Bildmanipulation aus, sodass Sie Formen direkt auf Bilder überlagern können. Dieses Tutorial zeigt, wie Sie effizient Rechtecke mit Matplotlib zu Bildern hinzufügen.
Inhaltsverzeichnis
Rechtecke in Matplotlib zeichnen
Bevor wir mit Bildern arbeiten, sollten wir das Zeichnen von Rechtecken auf Standard-Matplotlib-Figuren beherrschen. Dieser grundlegende Schritt ist entscheidend für das Verständnis des Bildüberlagerungsprozesses.
import matplotlib.pyplot as plt
import matplotlib.patches as patches
# Figur und Achsen erstellen
fig, ax = plt.subplots()
# Rechteck definieren
rect = patches.Rectangle((0.1, 0.1), 0.5, 0.5, linewidth=1, edgecolor='r', facecolor='none')
# Rechteck zu den Achsen hinzufügen
ax.add_patch(rect)
# Achsenlimits setzen (optional)
ax.set_xlim([0, 1])
ax.set_ylim([0, 1])
# Diagramm anzeigen
plt.show()
Dieser Code erzeugt ein einfaches Rechteck. Lassen Sie uns ihn zerlegen:
matplotlib.pyplot as plt
: Importiert die Matplotlib-Plotbibliothek.matplotlib.patches as patches
: Importiert daspatches
-Modul, das Formobjekte wie Rechtecke enthält.patches.Rectangle((x, y), width, height)
: Erstellt ein Rechteck.(x, y)
gibt die untere linke Ecke an;width
undheight
definieren seine Abmessungen. Koordinaten sind normalisiert (0 bis 1).linewidth
,edgecolor
,facecolor
: Steuern das Aussehen des Rechtecks.facecolor='none'
erzeugt nur eine Umrandung.ax.add_patch(rect)
: Fügt das Rechteck zu den Achsen hinzu.ax.set_xlim()
undax.set_ylim()
: Setzen die x- und y-Achsenlimits (optional, für eine bessere Visualisierung).
Rechtecke auf Bilder überlagern
Nun erweitern wir dies, um Rechtecke auf Bilder zu überlagern. Wir verwenden imread
von Matplotlib, um das Bild zu laden.
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.image as mpimg
# Bild laden
img = mpimg.imread('your_image.jpg') # Ersetzen Sie dies durch Ihren Bildpfad
# Figur und Achsen erstellen
fig, ax = plt.subplots()
# Bild anzeigen
ax.imshow(img)
# Rechteck erstellen (Pixelkoordinaten)
rect = patches.Rectangle((100, 100), 150, 100, linewidth=2, edgecolor='b', facecolor='none')
# Rechteck zu den Achsen hinzufügen
ax.add_patch(rect)
# Diagramm anzeigen
plt.show()
Dies ähnelt dem vorherigen Beispiel, aber:
mpimg.imread('your_image.jpg')
: Lädt das Bild. Denken Sie daran,'your_image.jpg'
durch den Pfad Ihres Bildes zu ersetzen.ax.imshow(img)
: Zeigt das Bild auf den Achsen an.- Rechteckkoordinaten
(100, 100)
sind jetzt Pixelkoordinaten. Passen Sie diese Werte an, um das Rechteck zu positionieren.
Mit dieser Methode können Sie Bilder effektiv annotieren. Experimentieren Sie mit Koordinaten, Größen, Farben und Linienstärken, um das Aussehen und die Platzierung des Rechtecks anzupassen. Denken Sie daran, dass Koordinaten relativ zu den Pixeldimensionen des Bildes sind.