OpenCV使用python實現限制對比度的自適應直方圖均衡化

OpenCV使用python實現限制對比度的自適應直方圖均衡化

前面講到的自適應直方圖均衡化的實現方法首先是將圖像劃分成不重疊的區域塊,讓後對每個塊分別進行直方圖均衡化處理。如果在圖像有噪聲的情況下這樣處理,在每個被分割的小區域塊中的噪聲就會被放大。

為了避免噪聲對圖像均衡化的影響,這裡使用了限制對比度的自適應直方圖均衡化來處理圖像的直方圖均衡化。

限制對比度的直方圖均衡化的處理方式是先為直方圖設置一個閾值,該閾值為限制對比度值,超過該閾值的值會被裁剪,然後裁剪的部分會均勻的分佈到其他值上,這樣就重構了直方圖,接下來就可以用重構後的直方圖來進行接下來的均衡化操作了。

下面是限制對比度的操作示例圖,我這邊用excel圖來進行展示:

OpenCV使用python實現限制對比度的自適應直方圖均衡化

OpenCV使用python實現限制對比度的自適應直方圖均衡化

閾值為40時,超出閾值的為50這個直方圖區域,將多出的50-40=10的部分均勻分佈到每個區域上,平均每個區域增加的值為2

注意:在OpenCV手冊中沒有提及到限制對比度的自適應直方圖均衡化函數。

具體的python實現限制對比度的自適應直方圖均衡化代碼如下:

OpenCV使用python實現限制對比度的自適應直方圖均衡化

其中默認設置的“限制對比度”為40,塊的大小為8X8

程序運行後的效果如下圖所示:

OpenCV使用python實現限制對比度的自適應直方圖均衡化

本文摘自異步社區,作者:黑夜探路人,作品:《OpenCV使用python實現限制對比度的自適應直方圖均衡化》,未經授權,禁止轉載。


分享到:


相關文章: