Cara menggunakan Python untuk melakukan penyamaan histogram warna pada gambar

WBOY
Lepaskan: 2023-08-19 09:50:10
asal
1645 orang telah melayarinya

Cara menggunakan Python untuk melakukan penyamaan histogram warna pada gambar

Cara menggunakan Python untuk melaksanakan penyamaan histogram warna pada gambar

Pengenalan:
Penyamaan histogram warna ialah kaedah pemprosesan imej biasa yang menjadikan imej lebih jelas dan terang dengan mempertingkatkan kontras imej. Dalam Python, dengan menggunakan beberapa perpustakaan pemprosesan imej biasa, kami boleh melaksanakan operasi penyamaan histogram warna dengan mudah. Artikel ini akan memperkenalkan cara menggunakan Python untuk menyamakan histogram warna imej dan memberikan contoh kod yang sepadan.

1. Pasang perpustakaan yang diperlukan
Sebelum melakukan penyamaan histogram warna, kami perlu memasang pustaka pemprosesan imej Python PIL (Python Imaging Library) atau Bantal perpustakaan cawangannya. Anda boleh memasangnya melalui arahan berikut:

$ pip pasang bantal

2. Import perpustakaan yang diperlukan
Selepas selesai pemasangan, kami perlu mengimport perpustakaan yang diperlukan.

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
Salin selepas log masuk

3 Baca gambar
Pertama, kita perlu memuatkan gambar untuk diproses. Imej boleh dibaca menggunakan modul Imej dalam perpustakaan PIL. Berikut ialah contoh kod untuk membaca imej:

image_path = 'path/to/your/image.jpg'
image = Image.open(image_path)
Salin selepas log masuk

4. Tukar kepada imej skala kelabu
Penyamaan histogram warna adalah terutamanya untuk melaraskan kecerahan imej, jadi imej warna perlu ditukar kepada imej skala kelabu. Ini boleh dicapai melalui kod berikut:

gray_image = image.convert('L')
Salin selepas log masuk

5. Kira histogram
Sebelum melakukan penyamaan histogram warna, kita perlu mengira histogram imej terlebih dahulu. Histogram imej boleh dikira menggunakan fungsi histogram dalam perpustakaan numpy. Berikut ialah contoh kod untuk mengira histogram:

hist, bins = np.histogram(gray_image.flatten(), 256, [0,256])
Salin selepas log masuk

Kod ini akan mengembalikan hist tatasusunan yang mengandungi statistik histogram imej dan tong julat berangka yang sepadan dengan statistik histogram.

6. Kira histogram terkumpul
Mengikut histogram, kita boleh mengira histogram terkumpul, yang digunakan untuk menyamakan kecerahan imej. Dengan mengumpul nilai tatasusunan histogram, kita boleh mendapatkan ketumpatan kebarangkalian kumulatif setiap tahap kelabu. Berikut ialah kod sampel untuk mengira histogram terkumpul:

cdf = hist.cumsum()
cdf_normalized = cdf * hist.max() / cdf.max()
Salin selepas log masuk

7. Kira jadual pemetaan
Seterusnya, kita perlu memetakan histogram kumulatif untuk mendapatkan fungsi transformasi linear untuk menyamakan kecerahan imej. Berikut ialah contoh kod untuk mengira jadual pemetaan:

mapping = np.interp(gray_image.flatten(), bins[:-1], cdf_normalized)
equalized_image = mapping.reshape(gray_image.shape)
Salin selepas log masuk

8. Paparkan hasil pemprosesan
Akhir sekali, kita boleh menggunakan perpustakaan Matplotlib untuk memaparkan imej yang diproses. Berikut ialah contoh kod yang memaparkan imej:

plt.subplot(1, 2, 1)
plt.imshow(gray_image, cmap='gray')
plt.title('Original Image')
plt.axis('off')

plt.subplot(1, 2, 2)
plt.imshow(equalized_image, cmap='gray')
plt.title('Equalized Image')
plt.axis('off')

plt.tight_layout()
plt.show()
Salin selepas log masuk

Dengan menjalankan kod di atas, anda boleh memaparkan imej asal dan imej yang disamakan untuk membandingkan kesan.

Kesimpulan:
Penyamaan histogram warna ialah kaedah pemprosesan imej biasa yang boleh meningkatkan kontras dan kejelasan imej. Artikel ini memperkenalkan cara menggunakan Python untuk menyamakan histogram warna imej dan menyediakan contoh kod yang sepadan. Saya harap ia dapat membantu pembaca. Pembaca boleh melaraskan dan menambah baik kod mengikut keperluan mereka sendiri untuk mencapai lebih banyak fungsi pemprosesan imej.

Atas ialah kandungan terperinci Cara menggunakan Python untuk melakukan penyamaan histogram warna pada gambar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!