欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Python直方圖均一化

林子帆1年前6瀏覽0評論

Python直方圖均一化(Histogram Equalization)是一種常見的圖像處理技術,通過對圖像像素的灰度值進行重新分配,使得圖像的對比度得以提高、細節得到增強。

Histogram Equalization的核心思想在于讓圖像中的像素分布更加均勻,從而使得更多的像素能夠充分利用灰度級,而不是聚集在某些特定灰度值上。這種均一化方法主要包括以下兩個步驟:

1. 統計圖像中不同灰度值的像素個數,生成原始灰度級分布圖;

import cv2
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE)
hist, bins = np.histogram(img.flatten(), 256, [0,256])
plt.plot(hist)
plt.show()

上述代碼通過使用OpenCV庫、numpy庫和matplotlib庫對圖像進行灰度化,并通過numpy庫的histogram()函數計算出灰度直方圖并通過matplotlib庫繪制圖像。運行結果如下圖所示:

2. 根據原始灰度級分布圖,生成新的灰度值映射表,將圖像像素的舊灰度值映射為新的灰度值。

cdf = hist.cumsum()
cdf_normalized = cdf * float(hist.max()) / cdf.max()
cdf_m = np.ma.masked_equal(cdf_normalized, 0)
cdf_m = (cdf_m - cdf_m.min())*255/(cdf_m.max()-cdf_m.min())
cdf = np.ma.filled(cdf_m,0).astype('uint8')
res = cdf[img]
plt.hist(res.flatten(), 256, [0,256], color = 'r')
plt.xlim([0, 256])
plt.show()

上述代碼使用numpy庫計算出累計分布函數(CDF),并對其進行歸一化和映射,最后使用matplotlib庫展示出均一化后的灰度級分布圖。運行結果如下圖所示:

通過Histogram Equalization技術可以將一張灰度圖像進行均一化處理,最終產生出更加明亮、細節更加清晰的圖像,使圖像處理和顯示更加準確。