www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > > FPGA開源工作室

基于FPGA的灰度圖像處理之對數(shù)變化

1 背景知識

對數(shù)變化的通用公式:s = clog(1+r)--------------------------------------------------------------(1)

其中c是一個常數(shù),r為灰度級。

1 一些基本的灰度變換函數(shù)

1中對數(shù)曲線的形狀表明,該變換將輸入中范圍較窄的低灰度值映射為輸出中較寬范圍的灰度值,相反地,對高的輸入灰度值也是如此。我們使用這種類型的變換來擴展圖像中的暗像素的值,同時壓縮更高灰度級的值。反對數(shù)變換的作用與此相反。

2 FPGA實現(xiàn)

2 FPGA實現(xiàn)對數(shù)變換框架圖

由圖2可知對于灰度圖像直接經(jīng)過對數(shù)變換就可以得到對數(shù)變換圖像,但是對于FPGA直接實現(xiàn)對數(shù)公式顯然難度很大。在FPGA中我們采用基于查找表的方式進行對數(shù)變換。

ROM表的制作:

Matlab源碼:

clear all

close all

clc

depth = 256;

width =8;

r = [0:1:255];

y = 45*log(1+r);

x = r;

z = round(y);

fid = fopen('E:\matlab_project\log\log2.mif','w');%路徑

fprintf(fid,'depth= %d; \n',depth);

fprintf(fid,'width= %d; \n',width);

fprintf(fid,'address_radix=uns;\n');

fprintf(fid,'data_radix = uns;\n');

fprintf(fid,'Content Begin \n');

for(k=1:depth)

fprintf(fid,'%d: %d; \n',k-1,z(k));

end

fprintf(fid,'end;');

hold on

plot(x);

plot(y);

hold off

結果:

3 log函數(shù)圖

部分Rom

depth= 256; %數(shù)據(jù)深度

width= 8; %數(shù)據(jù)位寬

address_radix=uns;

data_radix = uns;

Content Begin

0: 0;

1: 31;

2: 49;

3: 62;

4: 72;

5: 81;

6: 88;

7: 94;

8: 99;

9: 104;

10: 108;

...

...

...

250: 249;

251: 249;

252: 249;

253: 249;

254: 249;

255: 250;

end;

FPGA源碼

//------------------------------------------

// log

//------------------------------------------

wire [7:0] log_data;

rom_log rom_log_inst(

.address(o_y_8b),

.clock(TFT_clk),

.q(log_data)

);

assign TFT_rgb = {log_data[7:3],log_data[7:2],log_data[7:3]}; //Y

結果:

4 實驗原圖

5 實驗結果

由圖3可知,灰度值整體被拉大。由圖4和圖5觀察可得圖中白色區(qū)域明顯增多,某些白色線條被拉長。符合log變換將輸入中范圍較窄的低灰度值映射為輸出中較寬范圍的灰度值,相反地,對高的輸入灰度值也是如此。實驗成功。我們猜想正常的灰度圖像會被整體變亮,有興趣的同學可以去實驗。

由此我們可以得出對數(shù)變化的實際應用。比如夜間拍照圖像過暗,我們可以采用對數(shù)變換;如果圖像過度曝光也就是偏亮,我們可以采用反對數(shù)變換。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
關閉