Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Python, um Operationen auf Pixelebene an Bildern durchzuführen

So verwenden Sie Python, um Operationen auf Pixelebene an Bildern durchzuführen

WBOY
WBOYOriginal
2023-08-25 18:12:231656Durchsuche

So verwenden Sie Python, um Operationen auf Pixelebene an Bildern durchzuführen

So verwenden Sie Python, um Operationen auf Pixelebene an Bildern durchzuführen

Bei der Entwicklung moderner Technologie müssen wir häufig verschiedene Operationen und Verarbeitungen an Bildern durchführen. Für einige spezielle Bildverarbeitungsanforderungen sind Operationen auf Pixelebene eine gängige Methode. In diesem Artikel stellen wir anhand entsprechender Codebeispiele vor, wie Sie mit Python Vorgänge auf Pixelebene an Bildern durchführen können.

  1. Importieren Sie die erforderlichen Bibliotheken
    Zuerst müssen wir mehrere häufig verwendete Bibliotheken importieren: PIL (Python Imaging Library), NumPy und Matplotlib. Die PIL-Bibliothek ist eine häufig verwendete Bildverarbeitungsbibliothek in Python, NumPy ist eine Bibliothek für numerische Berechnungen und Matplotlib ist eine Bibliothek zum Zeichnen von Diagrammen und Bildern.
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
  1. Ein Bild öffnen und anzeigen
    Mit dem Bildmodul der PIL-Bibliothek können wir ganz einfach ein Bild öffnen und anzeigen. Der folgende Beispielcode öffnet ein Bild mit dem Namen „image.jpg“ und zeigt es in einem Fenster an.
img = Image.open("image.jpg")
img.show()
  1. Den Pixelwert des Bildes abrufen
    Um Operationen auf Pixelebene am Bild durchzuführen, müssen wir zunächst den Pixelwert des Bildes ermitteln. Mit dem Image-Modul der PIL-Bibliothek können wir die Pixelwerte des Bildes abrufen, indem wir die Methode getdata() aufrufen und in ein NumPy-Array konvertieren. getdata()方法来获取图像的像素值,并将其转换为NumPy数组。
pixels = np.array(img.getdata()).reshape(img.size[1], img.size[0], 3)

在上面的代码中,getdata()方法返回一个一维数组,其中包含图像的像素值。我们通过reshape()

gray_img = np.mean(pixels, axis=2).astype(np.uint8)
plt.imshow(gray_img, cmap="gray")
plt.show()
    Im obigen Code gibt die Methode getdata() ein eindimensionales Array zurück, das die Pixelwerte des Bildes enthält. Wir konvertieren es mit der Methode reshape() in ein dreidimensionales Array, wobei die erste Dimension die Höhe des Bildes, die zweite Dimension die Breite des Bildes und die dritte Dimension die Höhe des Bildes darstellt Anzahl der Kanäle des Bildes.

  1. Führen Sie Operationen auf Pixelebene für Bilder aus.
Sobald wir die Pixelwerte des Bildes erhalten haben, können wir verschiedene Operationen daran ausführen. Hier ist Beispielcode für einige gängige Operationen auf Pixelebene:

  • Graustufen
Eine einfache Möglichkeit, ein Bild in Graustufen umzuwandeln, besteht darin, die RGB-Werte jedes Pixels zu mitteln. Der folgende Code erledigt dies und zeigt die Ergebnisse in einem neuen Fenster an.
  • invert_img = 255 - pixels
    plt.imshow(invert_img)
    plt.show()

  • Bild umkehren
Eine einfache Möglichkeit, ein Bild umzukehren, besteht darin, den RGB-Wert jedes Pixels (255 minus dem aktuellen Wert) umzukehren. Der folgende Code erledigt dies und zeigt die Ergebnisse in einem neuen Fenster an.
  • from scipy.ndimage.filters import convolve
    
    kernel = np.array([[1, 2, 1],
                       [2, 4, 2],
                       [1, 2, 1]])
    
    blurred_img = convolve(pixels, kernel)
    plt.imshow(blurred_img.astype(np.uint8))
    plt.show()

  • Gaußsche Unschärfe
Gaußsche Unschärfe ist eine gängige Bildunschärfemethode, die erreicht werden kann, indem ein gewichteter Durchschnitt der jedes Pixel umgebenden Pixel ermittelt wird. Der folgende Code erledigt dies und zeigt die Ergebnisse in einem neuen Fenster an.
  1. result_img = Image.fromarray(blurred_img.astype(np.uint8))
    result_img.save("result.jpg")

  2. Speichern Sie das verarbeitete Bild
Sobald das Bild auf Pixelebene manipuliert wurde, können wir es mit dem Bildmodul der PIL-Bibliothek als neue Bilddatei speichern. Der folgende Code zeigt, wie das verarbeitete Bild gespeichert wird.

rrreee

Durch die obigen Schritte können wir Python verwenden, um Operationen auf Pixelebene am Bild durchzuführen und das Ergebnis als neue Bilddatei zu speichern. Darüber hinaus können wir verschiedene Operationen auf Pixelebene je nach Bedarf anpassen und über Code implementieren. Ich hoffe, dieser Artikel kann Ihnen bei Ihrer Arbeit und Ihrem Studium im Bereich Bildverarbeitung etwas Hilfe und Inspiration bieten.

Zusammenfassung: 🎜In diesem Artikel wird erläutert, wie Sie mit Python Operationen auf Pixelebene an Bildern durchführen. Wir öffnen und zeigen Bilder an, indem wir die PIL-Bibliothek, die NumPy-Bibliothek und die Matplotlib-Bibliothek importieren. Ermitteln Sie dann die Pixelwerte des Bildes und führen Sie Operationen auf Pixelebene für das Bild durch, z. B. Graustufen, Invertierung und Gaußsche Unschärfe. Speichern Sie abschließend das verarbeitete Bild. Durch diese Schritte können wir Bilder flexibel verarbeiten und vielfältige Bildverarbeitungsanforderungen umsetzen. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python, um Operationen auf Pixelebene an Bildern durchzuführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn