Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melakukan penyamaan histogram pada imej menggunakan Python
Cara menggunakan Python untuk melakukan penyamaan histogram pada imej
Pengenalan:
Penyamaan histogram ialah kaedah peningkatan imej biasa yang melaraskan nilai piksel imej untuk menjadikan taburan skala kelabu imej lebih seragam kontras imej. Dalam artikel ini, kita akan belajar cara melaksanakan penyamaan histogram imej menggunakan perpustakaan OpenCV dalam Python.
1. Import perpustakaan yang diperlukan
Pertama, kita perlu mengimport beberapa perpustakaan yang diperlukan dalam Python: numpy digunakan untuk memproses tatasusunan, matplotlib digunakan untuk memaparkan imej, dan cv2 digunakan untuk pemprosesan imej.
import numpy as np import cv2 from matplotlib import pyplot as plt
2 Muatkan imej
Kami menggunakan fungsi cv2.imread() untuk memuatkan imej. Fungsi ini menerima laluan ke fail imej sebagai parameter dan mengembalikan tatasusunan yang mewakili imej.
# 加载图像 img = cv2.imread('image.jpg', 0)
3 Kira histogram
Kami menggunakan fungsi cv2.calcHist() untuk mengira histogram imej. Fungsi ini menerima tatasusunan imej, indeks saluran, topeng, saiz histogram dan julat histogram sebagai argumen dan mengembalikan tatasusunan yang mewakili histogram imej.
# 计算直方图 hist = cv2.calcHist([img],[0],None,[256],[0,256])
4 Lukis imej asal dan histogram
Gunakan fungsi plt.subplot() dalam perpustakaan matplotlib untuk melukis imej asal dan histogram masing-masing.
# 绘制原始图像和直方图 plt.subplot(121), plt.imshow(img, 'gray') plt.subplot(122), plt.plot(hist)
5. Lakukan penyamaan histogram
Gunakan fungsi cv2.equalizeHist() untuk melakukan penyamaan histogram pada imej. Fungsi ini menerima tatasusunan imej sebagai parameter dan mengembalikan tatasusunan imej selepas penyamaan histogram.
# 进行直方图均衡化 equ = cv2.equalizeHist(img)
6. Lukis imej yang disamakan dan histogram
Gunakan juga fungsi plt.subplot() untuk melukis imej yang disamakan dan histogram masing-masing.
# 绘制均衡化后的图像和直方图 plt.subplot(121), plt.imshow(equ, 'gray') plt.subplot(122), plt.plot(hist)
7. Paparkan hasil
Gunakan fungsi plt.show() untuk memaparkan semua imej yang dilukis.
# 显示图像 plt.show()
8. Contoh kod lengkap
import numpy as np import cv2 from matplotlib import pyplot as plt # 加载图像 img = cv2.imread('image.jpg', 0) # 计算直方图 hist = cv2.calcHist([img],[0],None,[256],[0,256]) # 绘制原始图像和直方图 plt.subplot(121), plt.imshow(img, 'gray') plt.subplot(122), plt.plot(hist) # 进行直方图均衡化 equ = cv2.equalizeHist(img) # 绘制均衡化后的图像和直方图 plt.subplot(121), plt.imshow(equ, 'gray') plt.subplot(122), plt.plot(hist) # 显示图像 plt.show()
Kesimpulan:
Dengan menggunakan perpustakaan OpenCV dalam Python, kita boleh melakukan penyamaan histogram pada imej dengan mudah. Penyamaan histogram ialah kaedah mudah dan berkesan yang boleh meningkatkan kontras imej dan menjadikannya lebih jelas dan lebih jelas. Saya harap artikel ini dapat membantu pembaca yang berminat dalam pemprosesan imej.
Atas ialah kandungan terperinci Bagaimana untuk melakukan penyamaan histogram pada imej menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!