


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:
- Pertama, kita perlu menukar imej skala kelabu kepada tatasusunan numpy untuk pemprosesan seterusnya.
# 将灰度图像转换为numpy数组 gray_array = np.array(gray_image)
- Seterusnya, kita boleh menggunakan fungsi
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])
- Akhir sekali, kita boleh menormalkan matriks kejadian bersama tahap kelabu untuk memudahkan analisis seterusnya dan pengekstrakan ciri.
# 规范化灰度共生矩阵 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:
- Tenaga: digunakan untuk mengukur kejelasan tekstur. Formula pengiraan ialah tenaga adalah sama dengan jumlah kuasa dua setiap elemen dalam matriks kejadian bersama aras kelabu.
# 计算能量(energy) energy = np.sum(glcm ** 2) print("能量:", energy)
- Kontras: Digunakan untuk mengukur kontras antara aras kelabu dalam tekstur. Formula pengiraan ialah kontras adalah sama dengan jumlah setiap elemen dalam matriks kejadian bersama peringkat kelabu yang didarab dengan perbezaan piksel pada kedudukan yang sepadan.
# 计算对比度(contrast) contrast = np.sum(glcm * np.abs(np.arange(256) - np.arange(256)[:,None])) print("对比度:", contrast)
- Korelasi: Digunakan untuk mengukur korelasi linear tekstur. Formula pengiraan ialah korelasi adalah sama dengan hasil tambah setiap elemen dalam matriks kejadian bersama aras kelabu yang didarab dengan piksel pada kedudukan yang sepadan.
# 计算相关性(correlation) correlation = np.sum(glcm * (np.arange(256) - np.mean(glcm)) * (np.arange(256)[:,None] - np.mean(glcm))) / (np.std(glcm) ** 2) print("相关性:", correlation)
- Kehomogenan: Digunakan untuk mengukur kehalusan antara tahap kelabu dalam tekstur. Formula pengiraan ialah keseragaman adalah sama dengan jumlah setiap elemen dalam matriks kejadian bersama peringkat kelabu dibahagikan dengan perbezaan piksel pada kedudukan yang sepadan.
# 计算均匀性(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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Penggunaan alternatif anotasi parameter python Dalam pengaturcaraan Python, anotasi parameter adalah fungsi yang sangat berguna yang dapat membantu pemaju memahami dan menggunakan fungsi ...

Bagaimanakah skrip Python jelas output ke kedudukan kursor di lokasi tertentu? Semasa menulis skrip python, adalah perkara biasa untuk membersihkan output sebelumnya ke kedudukan kursor ...

Eksplorasi kod pengesahan retak menggunakan python dalam interaksi rangkaian harian, kod pengesahan adalah mekanisme keselamatan yang sama untuk mengelakkan manipulasi berniat jahat program automatik ...

Ramai pemaju bergantung kepada PYPI (PythonPackageIndex) ...

Pilihan Perpustakaan Pembangunan Aplikasi Desktop Python Python Banyak pemaju Python ingin membangunkan aplikasi desktop yang boleh dijalankan pada kedua-dua sistem Windows dan Linux ...

Bermula dengan Python: Lukisan Grafik Hourglass dan Pengesahan Input Artikel ini akan menyelesaikan masalah definisi berubah -ubah yang dihadapi oleh pemula python dalam program lukisan grafik Hourglass. Kod ...
