Einführung
Matplotlib ist eine beliebte Datenvisualisierungsbibliothek in Python. Es bietet verschiedene Plot-Tools, einschließlich 2D- und 3D-Plot-Fähigkeiten. In diesem Tutorial werden wir das RGBAxes-Modul des AxesGrid-Toolkits in Matplotlib verwenden, um RGB-Kanäle anzuzeigen.
Tipps für die VM
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
In diesem Schritt importieren wir die erforderlichen Bibliotheken: numpy, matplotlib.pyplot und mpl_toolkits.axes_grid1.axes_rgb.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.axes_rgb import RGBAxes, make_rgb_axes
Definieren einer Funktion zum Abrufen von RGB-Kanälen
In diesem Schritt definieren wir eine Funktion get_rgb(), um die R-, G- und B-Kanäle eines Bildes abzurufen. In diesem Beispiel verwenden wir die get_sample_data()-Funktion des cbook-Moduls, um ein Beispielbild zu erhalten.
import matplotlib.cbook as cbook
def get_rgb():
## Holen Sie sich ein Beispielbild
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")
Z[Z < 0] = 0.
Z = Z / Z.max()
## Holen Sie sich die R-, G- und B-Kanäle
R = Z[:13, :13]
G = Z[2:, 2:]
B = Z[:13, 2:]
return R, G, B
Definieren einer Funktion zum Erstellen eines RGB-Würfels
In diesem Schritt definieren wir eine Funktion make_cube(), um einen RGB-Würfel aus den im vorherigen Schritt erhaltenen R-, G- und B-Kanälen zu erstellen. Die Funktion wird die R-, G- und B-Würfel sowie das RGB-Bild zurückgeben.
def make_cube(r, g, b):
## Holen Sie sich die Form von R
ny, nx = r.shape
## Erstellen Sie die R-, G- und B-Würfel
R = np.zeros((ny, nx, 3))
R[:, :, 0] = r
G = np.zeros_like(R)
G[:, :, 1] = g
B = np.zeros_like(R)
B[:, :, 2] = b
## Verbinden Sie die R-, G- und B-Würfel, um das RGB-Bild zu erstellen
RGB = R + G + B
return R, G, B, RGB
Erstellen eines RGBAxes-Plots
In diesem Schritt erstellen wir einen RGBAxes-Plot mit der RGBAxes-Klasse. Wir verwenden die imshow_rgb()-Methode des RGBAxes-Objekts, um das RGB-Bild anzuzeigen.
def demo_rgb1():
## Erstellen Sie eine Figur und ein RGBAxes-Objekt
fig = plt.figure()
ax = RGBAxes(fig, [0.1, 0.1, 0.8, 0.8], pad=0.0)
## Holen Sie sich die R-, G- und B-Kanäle
r, g, b = get_rgb()
## Zeigen Sie das RGB-Bild mit der imshow_rgb()-Methode an
ax.imshow_rgb(r, g, b)
Erstellen eines RGBAxes-Plots mit separaten Kanälen
In diesem Schritt erstellen wir einen RGBAxes-Plot mit separaten Kanälen mit der make_rgb_axes()-Funktion. Wir verwenden die imshow()-Methode der Axes-Objekte, um die R-, G- und B-Kanäle anzuzeigen.
def demo_rgb2():
## Erstellen Sie eine Figur und ein Axes-Objekt
fig, ax = plt.subplots()
## Erstellen Sie die R-, G- und B Axes-Objekte mit der make_rgb_axes()-Funktion
ax_r, ax_g, ax_b = make_rgb_axes(ax, pad=0.02)
## Holen Sie sich die R-, G- und B-Kanäle und erstellen Sie den RGB-Würfel
r, g, b = get_rgb()
im_r, im_g, im_b, im_rgb = make_cube(r, g, b)
## Zeigen Sie das RGB-Bild und die R-, G- und B-Kanäle an
ax.imshow(im_rgb)
ax_r.imshow(im_r)
ax_g.imshow(im_g)
ax_b.imshow(im_b)
## Legen Sie die Tick-Parameter und die Spine-Farben für alle Axes-Objekte fest
for ax in fig.axes:
ax.tick_params(direction='in', color='w')
ax.spines[:].set_color("w")
Zeigen Sie die Plots an
In diesem Schritt rufen wir die demo_rgb1()- und demo_rgb2()-Funktionen auf, um die Plots zu erstellen und sie mit der plt.show()-Funktion anzuzeigen.
demo_rgb1()
demo_rgb2()
plt.show()
Zusammenfassung
In diesem Tutorial haben wir gelernt, wie man das RGBAxes-Modul des AxesGrid-Toolkits in Matplotlib verwendet, um RGB-Kanäle anzuzeigen. Wir haben die folgenden Schritte abgedeckt:
- Importieren der erforderlichen Bibliotheken
- Definieren einer Funktion, um RGB-Kanäle zu erhalten
- Definieren einer Funktion, um einen RGB-Würfel zu erstellen
- Erstellen eines RGBAxes-Plots
- Erstellen eines RGBAxes-Plots mit separaten Kanälen
- Anzeigen der Plots.