在FPGA圖像處理--CLAHE算法(一)中介紹了為啥要用CLAHE算法來(lái)做圖像增強(qiáng)。
在這一篇里面就介紹一下CLAHE的第一步處理:分塊。
通常來(lái)說(shuō)會(huì)將圖片分為8*8的64塊,然后分別對(duì)這64塊進(jìn)行直方圖均衡化。
如下所示(手畫的不均勻)。分為8*8這也是對(duì)常見(jiàn)的視頻分辨率可以被8整除,這樣也不用考慮邊界不均勻了。
因?yàn)槲覀円獙?duì)這64塊都做直方圖均衡化,所以先定義一個(gè)直方圖均衡化的計(jì)算函數(shù)。
def hist(img):
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
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
之后分塊調(diào)用這個(gè)直方圖均衡化的代碼。
def calc_ahe(img, block):
h, w = img.shape
he = np.zeros((h, w), np.uint8)
for i in range(block):
for j in range(block):
sk = hist(img[i * (h // block): (i + 1) * (h // block), j * (w // block):(j + 1) * (w // block)])
he[i * (h // block): (i + 1) * (h // block), j * (w // block):(j + 1) * (w // block)] = remap(
img[i * (h // block): (i + 1) * (h // block), j * (w // block):(j + 1) * (w // block)], sk)
return he
得到的效果如下:
可以看到每一塊都是被分割了出來(lái)。
在RTL實(shí)現(xiàn)的時(shí)候也是要對(duì)這些分塊進(jìn)行存儲(chǔ),定義下面的存儲(chǔ)器:
genvar i; generate for(i = 0; i < BLOCK_NUM_POW2; i = i + 1) begin : LOOP_MEM tpram #( .DP (256), .WD (16 ) ) tpram_inst( .clk (clk ), .wdata (wdata[i]), .wen (wen[i] ), .waddr (waddr[i]), .ren (ren[i] ), .raddr (raddr[i]), .rdata (rdata[i]) ); end endgenerate

也是考慮block_num來(lái)選擇寫入到哪一個(gè)ram里面。
通過(guò)i和j來(lái)控制最后的block_num,其中i表示列方向的分塊索引,j表示行方向的分塊索引,因?yàn)槲覀兠恳涣卸际欠譃榱?塊,所以i的索引需要乘以8,這個(gè)通過(guò)后面補(bǔ)3個(gè)0來(lái)實(shí)現(xiàn)。

最后通過(guò)一系列選擇來(lái)控制RAM的讀寫信號(hào)。

這樣就能完成CLAHE中分塊進(jìn)行直方圖均衡化的操作。這個(gè)主要難點(diǎn)是分塊,直方圖均衡化網(wǎng)上教程很多就不再贅述了。
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1654文章
22271瀏覽量
629837 -
圖像處理
+關(guān)注
關(guān)注
28文章
1340瀏覽量
59150 -
算法
+關(guān)注
關(guān)注
23文章
4759瀏覽量
97102
原文標(biāo)題:FPGA圖像處理--CLAHE算法(二)
文章出處:【微信號(hào):FPGA開源工坊,微信公眾號(hào):FPGA開源工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
FPGA圖像處理之CLAHE算法的線性差值
FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理
FPGA在圖像處理領(lǐng)域的優(yōu)勢(shì)有哪些?
FPGA圖像與視頻處理培訓(xùn)
一種基于FPGA的實(shí)時(shí)視頻圖像處理算法研究與實(shí)現(xiàn)
薦讀:FPGA設(shè)計(jì)經(jīng)驗(yàn)之圖像處理
基于DSP和FPGA的通用圖像處理平臺(tái)設(shè)計(jì)
ECT圖像重建算法的FPGA實(shí)現(xiàn)
基于FPGA的紅外圖像處理系統(tǒng)及算法設(shè)計(jì)
如何使用FPGA實(shí)現(xiàn)圖像的中值濾波算法
FPGA學(xué)習(xí)-基于FPGA的圖像處理
基于FPGA的圖像處理之直方圖均衡
FPGA圖像處理算法有哪些
FPGA圖像處理-CLAHE算法介紹(一)
基于FPGA的CLAHE圖像增強(qiáng)算法設(shè)計(jì)

FPGA圖像處理之CLAHE算法
評(píng)論