




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于直方圖處理的圖像的增強(qiáng)方法研究 中文摘要通過直方圖均衡算法,使輸出圖像直方圖近似服從均勻分布,在此算法基礎(chǔ)上利用小波變換,對(duì)圖像進(jìn)行二維小波分解,突出圖像中的有用信息,消減圖像中的無用信息,使圖像中特定信息得倒增強(qiáng),并提高圖像的對(duì)比度,提高圖像質(zhì)量。直方圖規(guī)定化是基于自適應(yīng)直方圖規(guī)定化函數(shù)引導(dǎo)的動(dòng)態(tài)分層圖像增強(qiáng)算法,在對(duì)比指紋圖像的灰度直方圖增強(qiáng)的技術(shù)的基礎(chǔ)上,針對(duì)均衡化算法的不足和現(xiàn)有直方圖規(guī)定化算法中映射規(guī)則計(jì)算量大的情形,提出一種改進(jìn)的規(guī)定化算法。直方圖規(guī)定化可以將圖像的直方圖轉(zhuǎn)化為需要的形狀,有目的地增加某個(gè)灰度區(qū)間的圖像,使用戶獲得感興趣的信息。關(guān)鍵詞:圖像增強(qiáng),直方圖均衡化,小
2、波變換,直方圖規(guī)定化Abstract Through the histogram equalization algorithm, make the output image histogram approximation obey uniform distribution. Based on the algorithm,using the imagine of the two dimensional wavelet decomposition, highlight the useful information and cut the useless information in the ima
3、gine. The imagine of a specific information will be enhanced, and the contrast of imagine will be improved , then the imagine quality will be improved.Key words: imagine enhancement; histogram equalization; wavelet transform一:引言圖像變換是數(shù)字圖像處理中的一種綜合變換,如直方圖變換。使用C語(yǔ)言對(duì)位圖文件的頭信息進(jìn)行讀取,從而對(duì)圖像進(jìn)行直方圖均衡化處理和灰度變換。大多數(shù)原始
4、的遙感圖像由于其灰度分布集中在較窄的范圍內(nèi),使圖像的細(xì)節(jié)不夠清晰,對(duì)比度較低。為了使圖像的灰度范圍拉開或使灰度均勻分布,從而增大反差,使圖像細(xì)節(jié)清晰,以達(dá)到增強(qiáng)的目的,通常采用直方圖均衡化及直方圖規(guī)定化兩種變換。二:原理與方法直方圖均衡化(Histogram Equalization)又稱直方圖平坦化,實(shí)質(zhì)上是對(duì)圖像進(jìn)行非線性拉伸,重新分配圖像象元值,使一定灰度范圍內(nèi)象元值的數(shù)量大致相等。這樣,原來直方圖中間的峰頂部分對(duì)比度得到增強(qiáng),而兩側(cè)的谷底部分對(duì)比度降低,輸出圖像的直方圖是一個(gè)較平的分段直方圖:如果輸出數(shù)據(jù)分段值較小的話,會(huì)產(chǎn)生粗略分類的視覺效果。直方圖均衡化理論假設(shè)灰度級(jí)為歸一化至范圍
5、0,1內(nèi)的連續(xù)量,并令Pr (r)表示某給定圖像中的灰度級(jí)的概率密度函數(shù)(PDF),其下標(biāo)用來區(qū)分輸入圖像和輸出圖像的PDF。假設(shè)我們對(duì)輸入灰度級(jí)執(zhí)行如下變換,得到(處理后的)輸出灰度級(jí)s:S=T(r)=0r Pr(w)dw式中w 是積分的啞變量。可以看出,輸出灰度級(jí)的概率密度函數(shù)是均勻的,即a.當(dāng)0s1 時(shí),Ps(s)=1b.當(dāng)s 為其他時(shí),Ps(s)=0換言之,前述變換生成一幅圖像,該圖像的灰度級(jí)較為均衡化,且覆蓋了整個(gè)范圍0,1。灰度級(jí)均衡化處理的最終結(jié)果是一幅擴(kuò)展了動(dòng)態(tài)范圍的圖像,它具有較高的對(duì)比度。該變換函數(shù)只不過是一個(gè)累積分布函數(shù)(CDF)。直方圖均衡化算法直方圖均衡化算法將原圖像
6、的直方圖改變?yōu)樵谡麄€(gè)灰度范圍內(nèi)基本均勻地分布的形式,由此擴(kuò)大了像素灰度的動(dòng)態(tài)范圍,從而增強(qiáng)了圖像的對(duì)比度。直方圖均衡化算法步驟為:1) 給出原始圖像的所有灰度級(jí)(k=0,1,L-1)。2) 統(tǒng)計(jì)原始圖像各灰度級(jí)的像素?cái)?shù)。3) 根據(jù)原圖像,計(jì)算灰度直方圖: (k=0,1,L-1) 式中,為總像素?cái)?shù),為灰度級(jí)的像素?cái)?shù)。4) 計(jì)算原始圖像的累積直方圖: (,k=0,1,L-1) 5) 取整計(jì)算: 6) 確定映射關(guān)系: 7) 統(tǒng)計(jì)新直方圖各灰度級(jí)的像素?cái)?shù)目。8) 計(jì)算新的直方圖:可以用概率密度函數(shù)來表示一幅圖象的灰度分布。其中,r為灰度值,的值為概率密度。實(shí)驗(yàn)要將原始圖象R通過轉(zhuǎn)換函數(shù)轉(zhuǎn)換為具有規(guī)定概
7、率密度函數(shù)最終增強(qiáng)圖象G。設(shè)原圖象的概率密度函數(shù)為。變換后的圖象的概率密度函數(shù)=規(guī)定的概率密度函數(shù)。由隨機(jī)變量函數(shù)的概率密度公式可以得到:設(shè) , 則有 所求得的就是從原始圖象到最終增強(qiáng)圖象的轉(zhuǎn)換函數(shù)。上述推導(dǎo)得到的的表達(dá)式適用于在灰度級(jí)和空間上都連續(xù)的圖象。為達(dá)到數(shù)字圖象處理的目的,必須對(duì)上述表達(dá)式進(jìn)行近似,這種離散形式的近似可以導(dǎo)致圖象灰度級(jí)的丟失。設(shè)圖象有256灰度級(jí),該近似方法如下:, 其中,為灰度值為r的像素總數(shù),n為總像素?cái)?shù)。r=1,2,255。的計(jì)算方法相同。在附錄所給出的源代碼中,轉(zhuǎn)換函數(shù)由數(shù)組SG256實(shí)現(xiàn)。PSNR值,即峰值信噪比,可以作為衡量輸出圖象的客觀保真度的標(biāo)準(zhǔn)。設(shè)圖
8、象有256灰度級(jí),則它的計(jì)算公式如下:g(x,y)和f(x,y)分別代表處理后的圖象和原始圖象。顯然,PSNR值越大,圖象的保真度越高。整個(gè)過程的處理框圖:讀入原始圖象計(jì)算原始圖象的直方圖存入H256并將數(shù)據(jù)輸出計(jì)算原始圖象的均衡直方圖存入S256并將數(shù)據(jù)輸出生成并保存均衡圖象計(jì)算原始圖象至均衡圖象的PSNR值計(jì)算規(guī)定的直方圖存入G256 計(jì)算規(guī)定的直方圖的均衡直方圖存入GS256并將數(shù)據(jù)輸出計(jì)算從原始圖象到最終增強(qiáng)圖象的轉(zhuǎn)換函數(shù)生成并保存最終增強(qiáng)圖象計(jì)算最終增強(qiáng)圖象的直方圖GR256并將數(shù)據(jù)輸出計(jì)算原始圖象至最終增強(qiáng)圖象的PSNR值三:仿真實(shí)驗(yàn)1 直方圖均衡化實(shí)驗(yàn)過程及結(jié)果5、主要代碼voi
9、d CImageView:OnDraw(CDC* pDC)CImageDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereif(m_dib.m_bLoaded=true) /判斷是否加載圖像/獲取圖像寬和高int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();ASSERT_VALID(pDoc);/ TODO: add draw code for native data hereif(m_dib.m_bLoaded=t
10、rue)int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();m_dib.ShowDIB(pDC,10,10,nw,nh,m_dib.m_pDIBData,m_dib.m_pBMI);m_dib.ShowDIB(pDC,400,10,nw,nh,m_dib.m_pDumpDIBData,m_dib.m_pBMI);if(m_bHist=true)/繪畫直方圖CString str;int nh=m_dib.GetDIBHeight();int i;/ 繪制坐標(biāo)軸pDC-MoveTo(10,nh+20); /(10,nh+20 )是直方圖的
11、左上角坐標(biāo) / 垂直軸pDC-LineTo(10,nh+200);/(10,nh+200 )是直方圖的左下角坐標(biāo) / 水平軸pDC-LineTo(310,nh+200);/(310,nh+200 )是直方圖的右下角坐標(biāo) / 寫X軸刻度值str.Format(0);pDC-TextOut(10, nh+200+10, str);str.Format(50);pDC-TextOut(60, nh+200+10, str);str.Format(100);pDC-TextOut(110, nh+200+10, str);str.Format(150);pDC-TextOut(160, nh+200+
12、10, str);str.Format(200);pDC-TextOut(210, nh+200+10, str);str.Format(255);pDC-TextOut(265, nh+200+10, str);str.Format(原圖直方圖歸一化);pDC-TextOut(100, nh+230+10, str);/ 繪制X軸刻度for ( i = 0; i MoveTo(i + 10, nh+200-2);pDC-LineTo(i + 10, nh+200+2);else/ 10的倍數(shù)pDC-MoveTo(i + 10, nh+200-2);pDC-LineTo(i + 10, nh+
13、200+2);/ 繪制X軸箭頭pDC-MoveTo(305,nh+200-5);pDC-LineTo(310,nh+200);pDC-LineTo(305,nh+200+5);/ 繪制y軸箭頭pDC-MoveTo(10,nh+20);pDC-LineTo(5,nh+20+5);pDC-MoveTo(10,nh+20);pDC-LineTo(15,nh+20+5);int max=0;for(i=0;imax)max=m_yuantui;for(i=0;iMoveTo(10+i,nh+200);pDC-LineTo(10+i,nh+200-(m_yuantui*160/max);/*/TEST
14、第二個(gè)直方圖if(m_bHist=true)/繪畫直方圖CString str;int nh=m_dib.GetDIBHeight();int i;/ 繪制坐標(biāo)軸pDC-MoveTo(160+nw,nh+20); /(10,nh+20 )是直方圖的左上角坐標(biāo) / 垂直軸pDC-LineTo(160+nw,nh+200);/(10,nh+200 )是直方圖的左下角坐標(biāo) / 水平軸pDC-LineTo(460+nw,nh+200);/(310,nh+200 )是直方圖的右下角坐標(biāo) / 寫X軸刻度值str.Format(0);pDC-TextOut(415, nh+200+10, str);str.
15、Format(50);pDC-TextOut(465, nh+200+10, str);str.Format(100);pDC-TextOut(515, nh+200+10, str);str.Format(150);pDC-TextOut(565, nh+200+10, str);str.Format(200);pDC-TextOut(615, nh+200+10, str);str.Format(255);pDC-TextOut(670, nh+200+10, str);str.Format(直方圖均衡化后歸一化);pDC-TextOut(505, nh+230+10, str);/ 繪制
16、X軸刻度for ( i = 0; i MoveTo(i + 420, nh+200-2);pDC-LineTo(i + 415, nh+200+2);else/ 10的倍數(shù)pDC-MoveTo(i + 420, nh+200-2);pDC-LineTo(i + 420, nh+200+2);/ 繪制X軸箭頭pDC-MoveTo(710,nh+200-5);pDC-LineTo(715,nh+200);pDC-LineTo(710,nh+200+5);/ 繪制y軸箭頭pDC-MoveTo(415,nh+20);pDC-LineTo(410,nh+20+5);pDC-MoveTo(415,nh+2
17、0);pDC-LineTo(420,nh+20+5);int max=0;for(i=0;imax)max=m_histi;for(i=0;iMoveTo(415+i,nh+200);pDC-LineTo(415+i,nh+200-(m_histi*160/max);/*/ 顯示圖像(具體的參數(shù)見CDIB類的該函數(shù)說明)m_dib.ShowDIB(pDC,10,10,nw,nh,m_dib.m_pDIBData,m_dib.m_pBMI);m_dib.ShowDIB(pDC,400,10,nw,nh,m_dib.m_pDumpDIBData,m_dib.m_pBMI);直方圖均衡化及直方圖歸一
18、化坐標(biāo)軸賦值程序void CImageView:OnZhifangtu() /判斷圖像是否打開,沒打開,則彈出提示框并退出函數(shù)if(!m_dib.m_bLoaded) AfxMessageBox(圖像還打開,請(qǐng)先打開圖像!);return; /獲取圖像寬和高及定義成員變量int nw=m_dib.GetDIBWidth();int nh=m_dib.GetDIBHeight();int i,j;int *arr=new int nw*nh;int n256=0;float p256=0.0,c256=0.0;BYTE* pdata=m_dib.m_pdata;for(i=0;i256;i+)
19、/初始化直方圖數(shù)組m_yuantui=0;if(1)/m_dib.m_nImType=24)for(j=0;jnh;j+)for(i=0;inw;i+)BYTE temp=pdataj*nw+i;m_yuantutemp+;m_bHist=true;/直方圖歸一化計(jì)算for(i=0;inh;i+) for(j=0;jnw;j+) nm_dib.m_pdatai*nw+j+; for(i=0;i256;i+) (float)pi=(float)ni/(float)(nw*nh); /歸一化后累計(jì)計(jì)算for(i=0;i256;i+) for(j=0;j=i;j+) ci+=pj; /找到灰度值最大
20、值最小值int max=m_dib.m_pdata0,min=m_dib.m_pdata0; for(i=0;inh;i+) for(j=0;jnw;j+) if(maxm_dib.m_pdatai*nw+j) min=m_dib.m_pdatai*nw+j; /套公式直方圖均衡化計(jì)算賦值給arr一維數(shù)組for(i=0;inh;i+) for(j=0;jnw;j+) arri*nw+j=int(cm_dib.m_pdatai*nw+j*(max-min)+min+0.5); /一維數(shù)組arr賦值給新圖像for( j=0;jnh;j+)for(i=0;inw;i+)m_dib.m_pdataj*
21、nw+i=arrj*nw+i;/將修改的m_pdata的數(shù)據(jù)賦值給m_pDIBData,以顯示修改的結(jié)果m_dib.UpdateData();/刷新屏幕Invalidate();for(i=0;i256;i+) /初始化直方圖數(shù)組m_histi=0;if(1)/m_dib.m_nImType=24)for(j=0;jnh;j+)for(i=0;inw;i+)BYTE temp=pdataj*nw+i;m_histtemp+;m_bHist=true;/ TODO: Add your command handler code here2 直方圖規(guī)定化實(shí)驗(yàn)過程及結(jié)果原圖象直方圖H:直方圖H的均衡直
22、方圖S:原始圖象R均衡圖象S PSNR=10.954935目標(biāo)直方圖G目標(biāo)直方圖G的均衡直方圖最終增強(qiáng)圖象G PSNR=11.947287最終增強(qiáng)圖象直方圖附錄:源程序#include #include / MFC core and standard components#include / MFC extensions#include #ifndef HXLBMPFILE#define HXLBMPFILEclass BMPFILEpublic: RGBQUAD palette256; BITMAPFILEHEADER imagefh; BITMAPINFOHEADER imageih; i
23、nt imagew,imageh; UCHAR *imagedata; UCHAR *GetByteatH(int height); BOOL AllocateMem(); BOOL bIsOk; void LoadBMPFILE(char *fname); void SaveBMPFILE(char *fname); BMPFILE();BMPFILE();#endifvoid main()BMPFILE bmpfile;bmpfile.LoadBMPFILE (實(shí)驗(yàn)圖象1.bmp);if(!bmpfile.bIsOk) printf(Error loading image.n);retur
24、n;/ do other processing with the imagedataint H256; /原始圖象直方圖memset(H,0,sizeof(H);int S256; /變換映射-均衡直方圖Sdouble psnr; /峰值信噪比int i;int f;for(i=0;ibmpfile.imageh*bmpfile.imagew;i+)H*(bmpfile.imagedata+i)+;S0=H0;for(i=1;i256;i+)Si=Si-1+Hi;for(i=0;i256;i+)Si=Si*255/(bmpfile.imageh*bmpfile.imagew);for(i=0;
25、ibmpfile.imageh*bmpfile.imagew;i+)*(bmpfile.imagedata+i)=S*(bmpfile.imagedata+i);/原圖象的直方圖Hprintf(H: );for(i=1;i256;i+)printf(%d ,Hi);printf(n);/原圖象(直方圖H)的均衡直方圖printf(S: );for(i=1;i256;i+)printf(%d ,Si);printf(n);/均衡圖象bmpfile.SaveBMPFILE (實(shí)驗(yàn)圖象1-均衡圖象.bmp);/PSNR值psnr=0;for(i=0;i255;i+)psnr+=(Si-i)*(Si-
26、i)*Hi;psnr=10*log10(double(bmpfile.imageh)*bmpfile.imagew*255*255/psnr);printf(PSNR: %fn,psnr);/目標(biāo)直方圖G的均衡直方圖int G256; /規(guī)定直方圖int GS256; /規(guī)定直方圖的均衡直方圖for(i=0;i=127;i+)Gi=i;for(i=128;i=255;i+)Gi=(255-i);GS0=G0;for(i=1;i256;i+)GSi=GSi-1+Gi;f=GS255/255+1;for(i=0;i256;i+)GSi/=f;printf(GS: );for(i=1;i256;i+)printf(%d ,GSi);printf(n);/最終增強(qiáng)圖象int i2;int minNumber;int SG256; /從原圖象的均衡圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省福州市八縣(市)一中2018-2019學(xué)年高二下學(xué)期期末聯(lián)考試題理(數(shù)學(xué))
- IGCSE歷史2024-2025年模擬試卷:工業(yè)革命與殖民擴(kuò)張歷史進(jìn)程梳理
- 2025年小學(xué)教師資格考試《綜合素質(zhì)》職業(yè)道德專項(xiàng)模擬試題含答案解析
- 2025年中考數(shù)學(xué)模擬試題(三輪押題專用)-數(shù)學(xué)思維訓(xùn)練與提升
- 2025年數(shù)學(xué)小升初考試:數(shù)學(xué)文化知識(shí)應(yīng)用與綜合訓(xùn)練試卷
- 廣東署山市三水中學(xué)2019-2020學(xué)年高一下學(xué)期第二次統(tǒng)考試題(歷史含解析)
- 2025年全國(guó)計(jì)算機(jī)一級(jí)WPSOffice高級(jí)應(yīng)用綜合能力測(cè)試試卷
- 2025年注冊(cè)驗(yàn)船師(B級(jí))船舶檢驗(yàn)案例分析模擬試卷(含船舶結(jié)構(gòu)安全專題)
- 代碼優(yōu)化的Python技巧試題及答案
- 海信算法工程師校招面試題及答案
- 國(guó)開2024年秋《心理健康教育》形考任務(wù)1-9答案
- 妊娠紋的治療
- 電力運(yùn)維管理平臺(tái)方案設(shè)計(jì)
- 安全培訓(xùn)管理體系
- 古詩(shī)教案模板范文
- 屠宰場(chǎng)安全培訓(xùn)
- 光伏電站運(yùn)維課件
- 廠區(qū)綠化環(huán)境提升方案
- 南京工業(yè)大學(xué)《化工廢水處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 高三第二輪復(fù)習(xí)之文言翻譯(李麗君)省公開課獲獎(jiǎng)?wù)n件市賽課比賽一等獎(jiǎng)?wù)n件
- 教輔資料進(jìn)校園審批制度
評(píng)論
0/150
提交評(píng)論