關(guān)于基于FPGA的圖像FFT濾波處理的分析和介紹_第1頁
關(guān)于基于FPGA的圖像FFT濾波處理的分析和介紹_第2頁
關(guān)于基于FPGA的圖像FFT濾波處理的分析和介紹_第3頁
關(guān)于基于FPGA的圖像FFT濾波處理的分析和介紹_第4頁
關(guān)于基于FPGA的圖像FFT濾波處理的分析和介紹_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

關(guān)于基于FPGA的圖像FFT濾波處理的分析和介紹基于FPGA的圖像FFT濾波處理AT7_Xilinx開發(fā)板(USB3.0+LVDS)資料共享1昨天

11:39上傳關(guān)于傅里葉變換關(guān)于傅里葉變換,這么一個神奇的變換,其基本原理和應(yīng)用在教科書、網(wǎng)絡(luò)上漫天飛舞,這里就不贅述了,以免有湊字?jǐn)?shù)的嫌疑。前面的例子我們已經(jīng)使用Matlab和Vivado的FFTIP核進行了初步的驗證,掌握的FFT/IFFTIP核的脾氣,那么接下來我們要玩點真的了,基于我們STAR/SF-AT7板采集到的MT9V034圖像,我們要進行每個行的FFT和IFFT變換,當(dāng)然,生成的FFT結(jié)果我們可以進行必要的濾波,然后再進行IFFT查看濾波效果。2基于Matlab的FFT濾波使用at7_img_ex06matlab文件夾下的Matlab源碼image_1D_fft_ifft.m或L1024_of_image_1D_fft_ifft.m(將640個點擴展為1024個點進行FFT變換,擴展的點以0填充,模擬FPGA的FFTIP核實際工作狀況),對測試圖像test進行FFT變換,進行必要的濾波,然后IFFT逆變換。測試圖像為彩色圖像,原始圖像如下。首先進行彩色轉(zhuǎn)灰度的變換,灰度圖像如下。提取出其中1行進行FFT變換后的圖像頻譜如下。很明顯,大部分高頻分量集中在前面幾個點,而后面的點幾乎頻率都很小。放大頻譜圖,看到細(xì)節(jié)如下。這里繪制了一條取值為300的直線,有將近50%的頻譜集中在這條線以下。若是做圖像壓縮,其實我們可以把這些低頻分量忽略了,那么數(shù)據(jù)量可能會大大降低,當(dāng)然了,副作用是圖像可能會有一定程度的失真,有失必有得嘛。濾除這些低頻分量,也會使圖像更銳一些。話說做FFT變換的目的可遠(yuǎn)不止這些,在一些特殊的應(yīng)用場景中,我們總是希望從原始圖像中提取出一些和應(yīng)用直接相關(guān)的特征信息,那么做了FFT后的圖像常常非常有益于這些操作。為了演示,這里我們的代碼里面就將這些低于300的點都濾除,即取0。從頻譜圖上看,如圖所示,右側(cè)的濾波后明顯圖像偏黑(很多值取0了)了。我們重新把原圖放到這里,和FFT濾波并IFFT以后的圖像做比對,圖像整體仍然保持不變,但是查看細(xì)節(jié),可以發(fā)現(xiàn)處理后的圖像明顯銳了一些。Matlab源碼如下:clc;clear`all;closeall;IMAGE_WIDTH=640;IMAGE_HIGHT=480;%loadoriginimage%I=imread('Lena_gray_niose.bmp');

I=imread('test.bmp');

I=rgb2gray(I);%fclose(fid1);%%outputimagedatainhexfileraw_image=reshape(I,IMAGE_HIGHT,IMAGE_WIDTH);raw_image=raw_image';fid2=fopen('image_in_hex.txt','wt');fprintf(fid2,'%04x',raw_image);fid2=fclose(fid2);%showoriginimagefigure,imshow(I);title('Originalimage');%1DfftbaseoneveryimagelineII=zeros(IMAGE_HIGHT,1024);J=zeros(IMAGE_HIGHT,1024);fori=1:IMAGE_HIGHTforj=1:IMAGE_WIDTHII(i,j)=I(i,j);end

J(i,=fft(II(i,);%fft(I(i,);end%show1linefftresultt1=(0:IMAGE_WIDTH);

%Timevectorline=ones(IMAGE_WIDTH)*200;figure;plot(t1(1:IMAGE_WIDTH),abs(J(50,1:IMAGE_WIDTH)),t1(1:IMAGE_WIDTH),line(1:IMAGE_WIDTH))title(['1lineimageintheFrequencyDomain'])%showfftoforiginimagefigure,imshow(log(abs(J)),[]);

title('1Dfftimagebaseoneveryimageline');%colormap(jet(64)),colorbar;%fftfiterJ(abs(J)<300)=0;

%J(abs(J)>1000)=1000;

%showfftoffftfilterimagefigure,imshow(log(abs(J)),[]);

title('1Dfftimageafterfilter');%1DifftbaseoneveryimagelineK=zeros(IMAGE_HIGHT,1024);fori=1:IMAGE_HIGHTK(i,=real(ifft(J(i,));endKK=zeros(IMAGE_HIGHT,IMAGE_WIDTH);fori=1:IMAGE_HIGHTforj=1:IMAGE_WIDTHKK(i,j)=K(i,j);endend%showifftimagefigure,imshow(KK,[])

title('1Difftimage');3FPGA仿真在Sources面板中,展開SimulationSourcesàsim_1,將sim_fft.v文件設(shè)置為topmodule。同樣是對前面的測試圖像,經(jīng)過FFT和IFFT變換后存儲在image_view0.txt文本中(仿真測試結(jié)果位于at7_img_ex06at7.simsim_1ehav文件夾下)。為了確認(rèn)FFT和IFFTIP核運算的精度和效果,這里沒有做任何的濾波處理。使用draw_image_from_FPGA_result.m腳本(at7_img_ex06matlab文件夾下)導(dǎo)入image_view0.txt文本的圖像,和原始圖像比對如下所示??吹綀D像幾乎沒有任何失真。4基于FPGA的圖像平滑處理工程文件夾at7_img_ex06zstar.srcssources_1ew下的image_fft_filter.v模塊以及3個子模塊image_fft_controller.v、image_filter.v和image_ifft_controller.v實現(xiàn)了圖像的FFT變換、濾波和IFFT變換處理。FPGA設(shè)計的功能框圖如下。image_fft_controller.v模塊例化FFTIP核,將采集的圖像留以行為單位輸入到FFTIP核,輸出FFT頻域數(shù)據(jù)。image_filter.v模塊對FFT頻域數(shù)據(jù)計算絕對值并進行必要的濾波處理,假設(shè)FFT結(jié)果的實部值為a,虛部值為b,那么其絕對值abs=sqrt(a^2+b^2)。如下代碼,注釋部分可以濾除低頻分量,當(dāng)前例程中為了驗證FFT和IFFT變換后精度沒有損失,未作濾波。always@(posedgeclkornegedgerst_n)

if(!rst_n)begino_image_filter_data_image<=20'd0;o_image_filter_data_real<=20'd0;end/*elseif(sqrt_fft[19:0]<20'd300)begin

//此處可以做必要的高頻或低頻濾波處理o_image_filter_data_image<=20'd0;o_image_filter_data_real<=20'd0;end*/elsebegino_image_filter_data_image<=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論