在這一篇里面介紹一下CLAHE算法的第二步對比度限制。
這個過程很簡單,分為下面幾個步驟。
計(jì)算出來限制的閾值
將統(tǒng)計(jì)好的直方圖數(shù)據(jù)限制在0到閾值范圍內(nèi)。也就是將大于閾值的直方圖數(shù)據(jù)減去閾值,并將差值累計(jì)起來。
將累計(jì)的差值平均分給每個灰度。
來看一下參考的Python代碼:
def cl_hist(img, clip): h, w = img.shape n = np.zeros(256, np.uint32) for i in range(h): for j in range(w): n[img[i][j]] = n[img[i][j]] + 1 t = 0 for i in range(256): if n[i] > clip: t += n[i] - clip n[i] = clip t = t / 256 n = n + t pk = n sk = np.zeros(256, np.float32) sk[0] = pk[0] for i in range(1, 256): sk[i] = sk[i - 1] + pk[i] sk = sk / (h * w) sk = sk * 255 sk = np.around(sk) return sk
這個和之前的直方圖統(tǒng)計(jì)就多了中間的步驟,也就是下面這一段代碼:
t = 0 for i in range(256): if n[i] > clip: t += n[i] - clip n[i] = clip t = t / 256 n = n + t
就是遍歷256個灰度的統(tǒng)計(jì)值,將大于閾值的灰度統(tǒng)計(jì)值就設(shè)置為閾值,并將兩者的差值進(jìn)行累加。最后將總的差值除以256,將最后的結(jié)果累加到每一個灰度的統(tǒng)計(jì)值上面。
來看一下最后的效果:
可以看到相對于沒有進(jìn)行限制對比度的效果要好很多。
下面這幅圖是沒有限制對比度閾值的結(jié)果:
那么這個閾值要怎么計(jì)算呢:
一般來說我們采取這樣的方法來計(jì)算閾值,也就是通過圖像的大小,分塊的多少,和clip_limit 的值來計(jì)算出來。一般圖像大小,和分塊多少是不變的,也就是說可以通過clip_limit的值來調(diào)整效果。
h, w = img.shape block = 8 clip_limit = 2 clip = clip_limit * (h * w / (block * block) / 256) clip = round(clip)
最后來看一下Verilog的實(shí)現(xiàn),可以通過下面的代碼來實(shí)現(xiàn)對比度限制的功能。
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1645文章
22033瀏覽量
617763 -
圖像處理
+關(guān)注
關(guān)注
27文章
1328瀏覽量
57998 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86623
原文標(biāo)題:FPGA圖像處理--CLAHE算法(三)
文章出處:【微信號:FPGA開源工坊,微信公眾號:FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理
關(guān)于IMAQdx獲取的圖像調(diào)節(jié)亮度對比度
張工教你FPGA圖像處理技術(shù)
FPGA的圖像處理技術(shù),你知道多少?
FPGA的圖像處理技術(shù),你知道多少?
FPGA的圖像處理技術(shù),你知道多少?
怎么設(shè)計(jì)圖像自適應(yīng)分段線性拉伸算法的FPGA?
【干貨】基于FPGA的圖像處理(圖像增強(qiáng))之直方圖均衡
視覺對比度分辨率補(bǔ)償?shù)牡讓?b class='flag-5'>圖像挖掘

基于對比度閾值的改進(jìn)SIFT算法
TI推出全新圖像處理算法套件,旨在提升圖像亮度和對比度
關(guān)于指數(shù)對比度增強(qiáng)FPGA實(shí)現(xiàn)
投影機(jī)中對比度與動態(tài)對比度的區(qū)別及運(yùn)用

評論