版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗二傅里葉變換一、實(shí)驗?zāi)康?1) 了解圖像變換的意義和手段(2)熟悉傅里葉變換的基本性質(zhì)(3)熱練掌握FFT的方法和應(yīng)用二、實(shí)驗內(nèi)容利用Visual C+編程實(shí)現(xiàn)數(shù)字圖像的傅里葉變換。三、預(yù)備知識在實(shí)驗一的基礎(chǔ)之上。四、實(shí)驗原理與步驟1傅里葉變換的原理傅里葉變換是一種函數(shù)的正交變換, 如果將信號以函數(shù)來描述,正交變換的 含義就是將一個函數(shù)分解成一組正交函數(shù)的線性組合。對于二維信號,二維Fourier變換定義為:二 二-j 2 二(ux , vy )F (u,v) = f Jf(x,y)edxdyoOoO逆變換:f ( x, y ) = F (u , v) e j2 二(ux vy) dudv
2、在數(shù)字圖像處理領(lǐng)域中, 該圖像的頻譜。二維離散傅里葉變換為:f(x,y)可以用來表示一幅圖像,而F(u,v)就表示1 F (u ,v )MNM -1 N -1, j 2 - ( ux'、f f (x, y)e M i =0 k = 0*vy)其中,x=0,1,,M-1,y=0,1,N-1 ,這里的M和N可以理解為圖像的寬度 和高。從上式中可以看出,傅立葉變換的每一項即對于每一個 u和v, F(u, v) 的值都由函數(shù)的所有值之和構(gòu)成。F(u , v)的值所覆蓋的范圍的域被稱為頻率域,F(xiàn)(u , v)中的每一項被稱為變換的頻率分量。從歐拉公式中可以得出:ejF = cos i j sin
3、再結(jié)合cos(-=c0se),sin(4) = -sin(e),所以傅立葉變換實(shí)際上是不同頻 率的正弦余弦乘以加權(quán)函數(shù)的積分,即:F(u,v)1MNMNux、f(x,y)cos(2 二%i =0 k =0Mvxux vx、)-j sin(2- ()NMN2實(shí)驗具體步驟(1)新建一個類 CFilterDFT ,添加成員函數(shù)如下:函數(shù)名功能輸入輸出Execute完成FFT變換CBmp *pImage - 位圖指針BOOLDFT_2D二維傅立葉變換(1) complex<double> * pSpaceData 圖像數(shù)據(jù)的復(fù)數(shù) 形式(空間域)(2) int nWidthDFT 數(shù)據(jù)寬度(
4、3) int nHeightDFT 數(shù)據(jù)高度complex<double> * pFrequencyData -傅立葉變換后的 結(jié)果(頻率域)SetFrequencyData在視圖類中調(diào)用 該接口complex<double> *pFDatavoidBOOL CFilterDFT:Execute(CBmp *pImage)if(pImage = NULL)return FALSE;ASSERT(pImage->GetBitCount() = 8);/循環(huán)控制變量int x;int y;/圖象的高度和寬度int nWidth = pImage->GetWidt
5、h();int nHeight = pImage->GetHeight();int nWidthMemory = pImage->GetWidthMemory();/圖像數(shù)據(jù)LPBYTE pImageData = pImage->GetBits();/ 臨時變量double dTemp;/ 傅立葉變換高度,2 的冪數(shù)int nHeightDFT;/ 傅立葉變換寬度,2 的冪數(shù)int nWidthDFT;/* 計算傅立葉變換的寬度和高度,是2 的冪數(shù) 開始 -*/dTemp = log(nWidth)/log(2);dTemp = ceil(dTemp);dTemp = pow
6、(2,dTemp);nWidthDFT = (int) dTemp;dTemp = log(nHeight)/log(2);dTemp = ceil(dTemp);dTemp = pow(2,dTemp);nHeightDFT = (int) dTemp;/* 計算傅立葉變換的寬度和高度,是2 的冪數(shù) 結(jié)束 -*/ 指向圖象數(shù)據(jù)的指針LPBYTE lpSrc;/ 指向空間域數(shù)據(jù)的指針complex<double> * pSpaceData;/ pFrequencyData 要從 SetFrequencyData 中設(shè)置/ 分配內(nèi)存pSpaceData = new complex&l
7、t;double>nWidthDFT * nHeightDFT;if (pSpaceData = NULL) | (pFrequencyData = NULL)return FALSE;/* 初始化空間域數(shù)據(jù) 開始 */* 圖象數(shù)據(jù)的寬和高不一定是2 的整數(shù)次冪,* pSpaceData 有一部分?jǐn)?shù)據(jù)需要補(bǔ)0*/for(y=0; y<nHeightDFT; +y)for(x=0; x<nWidthDFT; +x)pSpaceDatay*nWidthDFT+x = complex<double>(0, 0);/ 把圖象數(shù)據(jù)傳給pSpaceDatafor(y=0; y
8、<nHeight; +y)for(x=0; x<nWidth; +x)lpSrc = (LPBYTE) (pImageData + y * nWidthMemory + x) ;/空間域乘以pow(-1, x+y) ,頻譜移至中心pSpaceDatay*nWidthDFT+x = complex<double>(*lpSrc) /* pow(-1, x+y)*/,0);/* 初始化空間域數(shù)據(jù) 結(jié)束 */傅立葉變換DFT_2D(pSpaceData, nWidthDFT, nHeightDFT, pFrequencyData) ;/ 用傅立葉變換結(jié)果的模作為灰度值for(
9、y=0; y<nHeight; +y)for(x=0; x<nWidth; +x)/取模dTemp = pFrequencyDatay * nWidthDFT + x.real()* pFrequencyDatay * nWidthDFT + x.real()+ pFrequencyDatay * nWidthDFT + x.imag()* pFrequencyDatay * nWidthDFT + x.imag();dTemp = sqrt(dTemp) / nWidth;/除以因子N/ 圖像數(shù)據(jù)值小于255if(dTemp > 255)dTemp = 255;pImage
10、Datay*nWidth+x = (BYTE) dTemp;/ 釋放內(nèi)存delete pSpaceData;pSpaceData = NULL;return TRUE;void CFilterDFT:DFT_2D(complex<double> *pSpaceData, int nWidthDFT, int nHeightDFT, complex<double> *pFrequencyData)const double PI = 3.1415926;int m, n, x, y;double fCosTable;double fSinTable;complex<d
11、ouble> dTemp;for(n=0; n<nHeightDFT ; +n )for(m=0 ; m<nWidthDFT ; +m ) dTemp = complex<double> (0.0, 0.0);for(y=0; y<nHeightDFT ; +y )for(x=0 ; x<nWidthDFT ; +x )fCosTable=cos( -2*PI*( (double)m*x)/nWidthDFT + (double)n*y)/nHeightDFT) ) ;fSinTable=sin( -2*PI*( (double)m*x)/nWidth
12、DFT + (double)n*y)/nHeightDFT) ) ;dTemp += complex<double> (fCosTable, fSinTable) * pSpaceDatay*nWidthDFT+x;pFrequencyDatan*nWidthDFT+m = dTemp;/ 在視圖類中調(diào)用該接口,傳入pFDatavoid CFilterDFT:SetFrequencyData(complex<double> *pFData)pFrequencyData = pFData;( 2 )在視圖類中增加一個變量,用于存儲頻域變量的指針。complex<do
13、uble> *m_pFData;(3)新建一個菜單,菜單項目為DFT,與視圖類的 OnFilterDft()相關(guān)聯(lián)。void CImageTestView:OnFilterDft()if(AfxMessageBox(" 傅立葉變換算法時間較長,n 建議選擇小圖像,n 確實(shí)要運(yùn)行DFT嗎? ",MB_YESNO) = IDNO)return ;CBmp *pImage = GetDocument()->GetImage();ASSERT(pImage != NULL);/ 判斷是否是8-bpp 位圖if (pImage->GetBitCount() != 8
14、)/ 提示用戶MessageBox(" 目前只支持256 色的圖像處理!", "系統(tǒng)提示" ,MB_ICONINFORMATION | MB_OK);return;/更改光標(biāo)形狀BeginWaitCursor();/ 為頻率域分配內(nèi)存CFilterDFT *pFilter = new CFilterDFT;/ 判斷是否要分配內(nèi)存/ 圖象的高度和寬度int nWidth = pImage->GetWidth();int nHeight = pImage->GetHeight();/ 傅立葉變換高度,2 的冪數(shù)int nHeightDFT;/ 傅
15、立葉變換寬度,2 的冪數(shù)int nWidthDFT;/* 計算傅立葉變換的寬度和高度,是2 的冪數(shù) 開始 -*/double dTemp;dTemp = log(nWidth)/log(2);dTemp = ceil(dTemp);dTemp = pow(2,dTemp);nWidthDFT = (int) dTemp;dTemp = log(nHeight)/log(2);dTemp = ceil(dTemp);dTemp = pow(2,dTemp);nHeightDFT = (int) dTemp;/* 計算傅立葉變換的寬度和高度,是2 的冪數(shù) 結(jié)束-*/if(m_pFData != NULL)delete m_pFData;m_pFData = NULL;/ 為傅立葉變換結(jié)果分配內(nèi)存m_pFData = new complex<double>nWidthDFT * nHeightDFT;if(m_pFData = NULL)AfxMessageBox(" 分配內(nèi)存失敗!");return;else/ 傳給類 CFilterDFTpF
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024金融科技創(chuàng)新與研發(fā)合作合同
- 2024砂漿銷售合同范本正規(guī)范本
- 2025年度企業(yè)知識產(chǎn)權(quán)保護(hù)合作協(xié)議范本3篇
- 2024首期購房款支付及配套設(shè)施安裝合同3篇
- 2024購物廣場飾品知識產(chǎn)權(quán)保護(hù)合同
- 2024門診部心理健康咨詢師勞動合同與心理咨詢服務(wù)合同2篇
- 2024酒店弱電施工合同
- 多彩的植物世界-園林植物識別知到智慧樹章節(jié)測試課后答案2024年秋黑龍江生態(tài)工程職業(yè)學(xué)院
- 2024韓星夫妻解除婚姻關(guān)系標(biāo)準(zhǔn)協(xié)議樣本一
- 智能家居二手房買賣合同樣本
- JGT129-2017 建筑門窗五金件 滑輪
- 2017數(shù)據(jù)中心設(shè)計規(guī)范
- 附件:醫(yī)療服務(wù)項目相關(guān)財務(wù)歸集口徑規(guī)范-split
- 計量箱使用說明書
- 健康管理專業(yè)建設(shè)方案
- 產(chǎn)品實(shí)現(xiàn)生產(chǎn)過程流程圖
- 老年人的安全保護(hù)及預(yù)防措施課件
- 三相異步電動機(jī)的拆裝
- 人教版八年級語文上冊期末考試卷及答案
- ICU鎮(zhèn)痛鎮(zhèn)靜治療知情同意書
- 無人機(jī)駕駛航空試驗基地(試驗區(qū))基礎(chǔ)設(shè)施建設(shè)規(guī)范(征求意見稿)
評論
0/150
提交評論