Visualisierung von Matplotlib RGB-Kanälen

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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:

  1. Importieren der erforderlichen Bibliotheken
  2. Definieren einer Funktion, um RGB-Kanäle zu erhalten
  3. Definieren einer Funktion, um einen RGB-Würfel zu erstellen
  4. Erstellen eines RGBAxes-Plots
  5. Erstellen eines RGBAxes-Plots mit separaten Kanälen
  6. Anzeigen der Plots.