Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mengekstrak tekstur daripada imej menggunakan Python
Cara menggunakan Python untuk mengekstrak tekstur daripada imej
Pengenalan: Pengekstrakan tekstur ialah teknologi penting dalam pemprosesan imej, yang boleh mengekstrak ciri tekstur daripada imej untuk analisis imej, pengelasan, pemadanan dan tugasan lain. Sebagai bahasa pengaturcaraan yang popular, Python mempunyai banyak perpustakaan dan alatan pemprosesan imej, seperti PIL, opencv-python, dll. Artikel ini akan memperkenalkan cara menggunakan Python untuk mengekstrak tekstur daripada imej, dan melampirkan contoh kod.
1. Pasang dan import perpustakaan yang diperlukan
Sebelum kita mula, kita perlu memasang dan mengimport beberapa perpustakaan yang diperlukan, termasuk PIL, opencv-python dan numpy. Anda boleh menggunakan pip untuk memasangnya:
$ pip install Pillow $ pip install opencv-python $ pip install numpy
Kod untuk mengimport perpustakaan yang diperlukan adalah seperti berikut:
import cv2 import numpy as np from PIL import Image
2. Baca dan paparkan gambar
Pertama, kita perlu membaca gambar untuk diproses dan memaparkannya. Di sini, kami memilih gambar pemandangan semula jadi dan menyimpannya sebagai "texture.jpg".
# 读取图片 image = Image.open("texture.jpg") # 显示图片 image.show()
3 Tukar imej kepada imej skala kelabu
Pengestrakan tekstur biasanya dilakukan pada imej skala kelabu, jadi kita perlu menukar imej warna yang dibaca kepada imej skala kelabu.
# 转换为灰度图像 gray_image = image.convert("L") # 显示灰度图像 gray_image.show()
4. Kira matriks kejadian bersama tahap kelabu (GLCM)
Matriks kejadian bersama tahap kelabu ialah kaedah biasa untuk analisis tekstur, yang boleh menerangkan perubahan tahap kelabu dan hubungan ruang antara piksel.
Dalam Python, kita boleh menggunakan perpustakaan opencv-python (cv2) untuk mengira matriks kejadian bersama peringkat kelabu. Langkah-langkah khusus adalah seperti berikut:
# 将灰度图像转换为numpy数组 gray_array = np.array(gray_image)
cv2.calcHist()
di perpustakaan cv2 untuk mengira matriks kejadian bersama peringkat kelabu. Fungsi ini memerlukan input imej skala kelabu dan beberapa parameter, seperti bilangan tahap skala kelabu, selang piksel, ketinggian dan lebar imej, dsb. # 计算灰度共生矩阵 glcm = cv2.calcHist([gray_array], [0], None, [256], [0, 256])
# 规范化灰度共生矩阵 glcm /= glcm.sum()
5. Pengekstrakan ciri tekstur
Selepas memperoleh matriks kejadian bersama tahap kelabu, kita boleh menggunakannya untuk mengekstrak beberapa ciri tekstur biasa, seperti tenaga, kontras, korelasi dan keseragaman (kehomogenan) dsb.
Berikut adalah beberapa kaedah pengiraan ciri tekstur biasa:
# 计算能量(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)
6. Ringkasan
Artikel ini memperkenalkan cara menggunakan Python untuk mengekstrak tekstur daripada imej dan cara mengira ciri tekstur biasa. Dengan menggunakan PIL dan opencv-python, dua perpustakaan pemprosesan imej yang biasa digunakan, kita boleh membaca dan memaparkan imej dengan mudah, menukar imej kepada imej skala kelabu dan mengira matriks kejadian bersama skala kelabu bagi imej tersebut. Selepas memperoleh matriks kejadian bersama peringkat kelabu, kami juga memperkenalkan cara mengira ciri tekstur biasa, termasuk tenaga, kontras, korelasi dan keseragaman.
Analisis tekstur ialah hala tuju penyelidikan yang penting dalam penglihatan komputer dan memainkan peranan penting dalam analisis imej, pengelasan, pengambilan semula dan tugasan lain. Saya harap artikel ini akan membantu pembaca yang mempelajari dan menggunakan teknologi pengekstrakan tekstur.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak tekstur daripada imej menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!