Heim >Backend-Entwicklung >Python-Tutorial >So extrahieren Sie mit Python Texturen aus Bildern
So extrahieren Sie mit Python Texturen aus Bildern
Einführung: Die Texturextraktion ist eine wichtige Technologie in der Bildverarbeitung, mit der Texturmerkmale aus Bildern für die Bildanalyse, Klassifizierung, Zuordnung und andere Aufgaben extrahiert werden können. Als beliebte Programmiersprache verfügt Python über eine Fülle von Bildverarbeitungsbibliotheken und -tools wie PIL, opencv-python usw. In diesem Artikel wird erläutert, wie Sie mit Python Texturen aus Bildern extrahieren und Codebeispiele anhängen.
1. Notwendige Bibliotheken installieren und importieren
Bevor wir beginnen, müssen wir einige notwendige Bibliotheken installieren und importieren, darunter PIL, opencv-python und numpy. Sie können pip verwenden, um sie zu installieren:
$ pip install Pillow $ pip install opencv-python $ pip install numpy
Der Code zum Importieren der erforderlichen Bibliotheken lautet wie folgt:
import cv2 import numpy as np from PIL import Image
2. Bilder lesen und anzeigen
Zuerst müssen wir ein zu verarbeitendes Bild lesen und anzeigen. Hier haben wir ein natürliches Landschaftsbild ausgewählt und es als „texture.jpg“ gespeichert.
# 读取图片 image = Image.open("texture.jpg") # 显示图片 image.show()
3. Konvertieren Sie das Bild in ein Graustufenbild. Die Texturextraktion wird im Allgemeinen an einem Graustufenbild durchgeführt, daher müssen wir das gelesene Farbbild in ein Graustufenbild konvertieren.
# 转换为灰度图像 gray_image = image.convert("L") # 显示灰度图像 gray_image.show()4. Berechnen Sie die Graustufen-Kookkurrenzmatrix (GLCM)
Die Graustufen-Kookkurrenzmatrix ist eine gängige Methode zur Texturanalyse, die die Graustufenänderungen und räumlichen Beziehungen zwischen Pixeln beschreiben kann.
# 将灰度图像转换为numpy数组 gray_array = np.array(gray_image)
cv2.calcHist()
# 计算灰度共生矩阵 glcm = cv2.calcHist([gray_array], [0], None, [256], [0, 256])
# 规范化灰度共生矩阵 glcm /= glcm.sum()
Nachdem wir die Graustufen-Kookkurrenzmatrix erhalten haben, können wir damit einige allgemeine Texturmerkmale extrahieren, wie z. B. Energie, Kontrast, Korrelation und Gleichmäßigkeit (Homogenität) usw.
# 计算能量(energy) energy = np.sum(glcm ** 2) print("能量:", energy)
# 计算对比度(contrast) contrast = np.sum(glcm * np.abs(np.arange(256) - np.arange(256)[:,None])) print("对比度:", contrast)
# 计算相关性(correlation) correlation = np.sum(glcm * (np.arange(256) - np.mean(glcm)) * (np.arange(256)[:,None] - np.mean(glcm))) / (np.std(glcm) ** 2) print("相关性:", correlation)
# 计算均匀性(homogeneity) homogeneity = np.sum(glcm / (1 + np.abs(np.arange(256) - np.arange(256)[:,None]))) print("均匀性:", homogeneity)
In diesem Artikel erfahren Sie, wie Sie mit Python Texturen aus Bildern extrahieren und wie Sie allgemeine Texturmerkmale berechnen. Durch die Verwendung von PIL und opencv-python, zwei häufig verwendeten Bildverarbeitungsbibliotheken, können wir Bilder einfach lesen und anzeigen, Bilder in Graustufenbilder konvertieren und die Graustufen-Koexistenzmatrix des Bildes berechnen. Nachdem wir die Graustufen-Kookkurrenzmatrix erhalten hatten, führten wir auch die Berechnung gemeinsamer Texturmerkmale ein, einschließlich Energie, Kontrast, Korrelation und Gleichmäßigkeit.
Das obige ist der detaillierte Inhalt vonSo extrahieren Sie mit Python Texturen aus Bildern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!