-暗原色去霧霾處理c_第1頁(yè)
-暗原色去霧霾處理c_第2頁(yè)
-暗原色去霧霾處理c_第3頁(yè)
-暗原色去霧霾處理c_第4頁(yè)
-暗原色去霧霾處理c_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、北京航空航天大學(xué)數(shù)字圖像處理 課程設(shè)計(jì)報(bào)告 圖像去霧霾班().1. 實(shí)現(xiàn)目標(biāo)1、算法功能霧霾是特定氣候條件與人類活動(dòng)相互作用的結(jié)果。高密度人口的經(jīng)濟(jì)及社會(huì)活動(dòng)必然會(huì)排放大量細(xì)顆粒物,一旦排放超過大氣循環(huán)能力和承載度,細(xì)顆粒物濃度將持續(xù)積聚,此時(shí)如果受靜穩(wěn)天氣等影響,極易出現(xiàn)大范圍霧霾。2、 技術(shù)指標(biāo)去霧霾方式是推測(cè)每一個(gè)像素點(diǎn)的霧霾濃度,將其去除?,F(xiàn)實(shí)中給我們的印象是,在霧霾天氣下,近距離的物體看得比較清,霧霾的濃度?。贿h(yuǎn)距離的物體看不清,霧霾的濃度大??梢哉f,霧霾圖像=清晰圖像+霧霾濃度。因此,為了準(zhǔn)確恢復(fù)清晰圖像,我們必須估計(jì)圖像中物體所處位置的霧霾濃度,這是高性能去霧霾技術(shù)的關(guān)鍵所在。2

2、. 研究現(xiàn)狀分析1、 國(guó)內(nèi)外研究現(xiàn)狀目前,國(guó)內(nèi)外對(duì)于圖像去霧的方法主要分為兩大類,一類是基于大氣退化物理模型的方法, 即從物理成因的角度對(duì)大氣散射作用進(jìn)行建模分析,進(jìn)而得到場(chǎng)景深度模型,實(shí)現(xiàn)場(chǎng)景復(fù)原,另一類是基于圖像增強(qiáng)的方法,也就是單純從圖像的角度考慮,無須借助其他設(shè)備或者參考圖像等輔助信息,直接利用圖像增強(qiáng)方法改善圖像質(zhì)量,達(dá)到降低霧影響的目的。2、 目前存在的問題第一類方法一般需要復(fù)雜的建模過程,有些甚至還需要額外的特殊設(shè)備,或者需要無霧的圖像作為參考,實(shí)現(xiàn)過程比較困難。3、 算法描述基于暗原色先驗(yàn)的單幅圖像去霧算法(使用opencv)首先求出每個(gè)像素RGB分量中的最小值,存入

3、一副和原始圖像大小相同的灰度圖中,然后再對(duì)這幅灰度圖進(jìn)行最小值濾波,濾波的半徑由窗口大小決定,一般有WindowSize = 2 * Radius + 1; 根據(jù)霧圖成型模型,求出A,t(x)帶入求出J即可。暗原色先驗(yàn)是通過對(duì)戶外無霧圖像的觀察得出的:在絕大多數(shù)非天空的局部區(qū)域里,某一些像素總會(huì)有至少一個(gè)顏色通道具有很低的值。換言之,該區(qū)域光強(qiáng)度的最小值是個(gè)很小的數(shù)。公式描述:J = ( I - A)/t + A 其中 I(X)就是我們現(xiàn)在已經(jīng)有的圖像(待去霧的圖像),J(x)是我們要恢復(fù)的無霧的圖像,A是全球大氣光成分, t(x)為透射率。各參數(shù)對(duì)去霧結(jié)果的影響第一:窗口的大小。這個(gè)對(duì)結(jié)果來

4、說是個(gè)關(guān)鍵的參數(shù),窗口越大,其包含暗通道的概率越大,暗通道也就越黑。我們不去從理論角度分析,從實(shí)踐的效果來看,似乎窗口越大,去霧的效果越不明顯。 我的建議是窗口大小在11-51之間,即半徑在5-25之間。式(12)中的具有著明顯的意義,其值越小,去霧效果越不明顯。當(dāng)投射圖t 的值很小時(shí),會(huì)導(dǎo)致J的值偏大,從而使淂圖像整體向白場(chǎng)過度,因此一般可設(shè)置一閾值T0,當(dāng)t值小于T0時(shí),令t=T0,本文中所有效果圖均以T0=0.1為標(biāo)準(zhǔn)計(jì)算。上述推論中都是假設(shè)全球達(dá)氣光A值時(shí)已知的,在實(shí)際中,我們可以借助于暗通道圖來從有霧圖像中獲取該值。具體步驟如下:1) 從暗通道圖中按照亮度的大小取前0.1%的像素。2

5、) 在這些位置中,在原始有霧圖像I中尋找對(duì)應(yīng)的具有最高亮度的點(diǎn)的值,作為A值。4、 算法的實(shí)現(xiàn)主要算法:/求暗原色 ROI_rect.width=block;/rect.width獲取或設(shè)置矩形的寬度 ROI_rect.height=block;/高度;block 由滑動(dòng)條給定 ROI_rect.x=0; ROI_rect.y=0; int i; int j; double min1=0; double max1=0; double min2=0; double max2=0; double min3=0; double max3=0; double min=0; CvScalar value

6、;/CvScalar一個(gè)可以用來存放4個(gè)double數(shù)值的數(shù)組; /一般用來存放像素值(不一定是灰度值)的,最多可以存放4個(gè)通道的 for(i=0;i<src->width/block;i+) for(j=0;j<src->height/block;j+) /分別計(jì)算三個(gè)通道內(nèi)ROI的最小值 cvSetImageROI(dst1,ROI_rect);/ cvSetImageROI基于給定的矩形設(shè)置圖像的ROI cvCopy(dst1,imgroi1,NULL);/cvCopy 拷貝一個(gè)數(shù)組給另一個(gè)數(shù)組 cvMinMaxLoc(imgroi1,&min1,&

7、;max1,NULL,NULL); cvSetImageROI(dst2,ROI_rect); cvCopy(dst2,imgroi2,NULL); cvMinMaxLoc(imgroi2,&min2,&max2,NULL,NULL);/cvMinMaxLoc 尋找數(shù)組中的最大最小值; cvSetImageROI(dst3,ROI_rect); cvCopy(dst3,imgroi3,NULL); cvMinMaxLoc(imgroi3,&min3,&max3,NULL,NULL); /求三個(gè)通道內(nèi)最小值的最小值 if(min1<min2) min=min

8、1; else min=min2; if(min>min3) min=min3;/min為這個(gè)ROI中暗原色 value=cvScalar(min,min,min,min);/min放在value中,三個(gè)就可以了。 /min賦予dark_channel中相應(yīng)的ROI cvSetImageROI(dark_channel,ROI_rect); cvSet(roidark,value,NULL); cvCopy(roidark,dark_channel,NULL); /釋放各個(gè)ROI cvResetImageROI(dst1); cvResetImageROI(dst2); cvResetI

9、mageROI(dst3); cvResetImageROI(dark_channel); /轉(zhuǎn)入下一個(gè)ROI ROI_rect.x=block*i; ROI_rect.y=block*j; /保存暗原色先驗(yàn)的圖像 cvSaveImage("G:/課件/大三下/數(shù)字圖像處理/圖像處理作業(yè)/處理結(jié)果/dark_channel_prior.jpg",dark_channel);/利用得到的暗原色先驗(yàn)dark_channel_prior.jpg求大氣光強(qiáng) double min_dark; double max_dark; CvPoint min_loc; CvPoint max_

10、loc;/max_loc是暗原色先驗(yàn)最亮一小塊的原坐標(biāo) cvMinMaxLoc(dark_channel,&min_dark,&max_dark,&min_loc,&max_loc,NULL); cout<<max_loc.x<<" "<<max_loc.y<<endl; ROI_rect.x=max_loc.x; ROI_rect.y=max_loc.y; double A_dst1;/定義大氣光成分的估計(jì)值 double dst1_min; double A_dst2; double dst

11、2_min; double A_dst3; double dst3_min; cvSetImageROI(dst1,ROI_rect);/按照論文方法求大氣光強(qiáng)估計(jì)值 cvCopy(dst1,imgroi1,NULL); cvMinMaxLoc(imgroi1,&dst1_min,&A_dst1,NULL,NULL);/cvMinMaxLoc 尋找數(shù)組中的最大最小值; cvSetImageROI(dst2,ROI_rect); cvCopy(dst2,imgroi2,NULL); cvMinMaxLoc(imgroi2,&dst2_min,&A_dst2,NUL

12、L,NULL);/從暗通道圖中按照亮度的大小取前0.1%的像素。在這些位置中,在原始有霧圖像I中尋找對(duì)應(yīng)的具有最高亮度的點(diǎn)的值,作為A值。 cvSetImageROI(dst3,ROI_rect); cvCopy(dst3,imgroi3,NULL); cvMinMaxLoc(imgroi3,&dst3_min,&A_dst3,NULL,NULL); cout<<A_dst1<<" "<<A_dst2<<" "<<A_dst3<<endl;/這三值為大氣光強(qiáng)度估計(jì)值/

13、求透射率 int k; int l; CvScalar m; CvScalar n;/暗原色先驗(yàn)各元素值 for(k=0;k<src->height;k+) for(l=0;l<src->width;l+) m=cvGet2D(dark_channel,k,l);/獲取dark_channel圖像中坐標(biāo)為(k,l)的像素點(diǎn)的值 n=cvScalar(255-w*m.val0); /w目的是保留一部分的霧,使圖像看起來真實(shí)些 cvSet2D(toushelv,k,l,n);/透射率是針對(duì)窗口而言的 cvSaveImage("G:/課件/大三下/數(shù)字圖像處理/圖像

14、處理作業(yè)/處理結(jié)果/toushelv.jpg",toushelv);/求無霧圖像 int p,q; double tx; double jj1,jj2,jj3; CvScalar ix,jx; for(p=0;p<src->height;p+) for(q=0;q<src->width;q+) tx=cvGetReal2D(toushelv,p,q);/獲得某個(gè)點(diǎn)的值 tx=tx/255; if(tx<0.1) tx=0.1;/tx 的值很小時(shí),會(huì)導(dǎo)致J的值偏大,從而使淂圖像整體向白場(chǎng)過度,因此設(shè)置一閾值T0,當(dāng)t值小于T0時(shí),令t=T0. ix=cvG

15、et2D(src,p,q); jj1=(ix.val0-A_dst1)/tx+A_dst1;/根據(jù)霧產(chǎn)生模型運(yùn)算,還原出無霧圖像 jj2=(ix.val1-A_dst2)/tx+A_dst2;/typedef struct CvScalardouble val4;CvScalar; jj3=(ix.val2-A_dst3)/tx+A_dst3; jx=cvScalar(jj1,jj2,jj3,0.0); cvSet2D(dst,p,q,jx);/ 給某個(gè)點(diǎn)賦值 cvSaveImage("G:/課件/大三下/數(shù)字圖像處理/圖像處理作業(yè)/處理結(jié)果/removed_haze.jpg&quo

16、t;,dst);/保存圖像/主函數(shù)如下void main() /打開圖像 src=cvLoadImage("22.bmp",-1); /創(chuàng)造窗口 cvNamedWindow("有霧圖像",CV_WINDOW_AUTOSIZE);/cvNamedWindow該函數(shù)為開放計(jì)算機(jī)視覺(OpenCV)庫(kù)庫(kù)函數(shù),用來創(chuàng)建指定的窗口 cvShowImage("有霧圖像",src);/開放計(jì)算機(jī)視覺(OpenCV)庫(kù)庫(kù)函數(shù),用來在在指定窗口中顯示圖像 cvNamedWindow("目的圖像",CV_WINDOW_AUTOSIZE); cvCreateTrackbar(tbarname1, "目的圖像", &block, 25, on_trackbar1);/ 創(chuàng)建trackbar并將它添加到指定的窗口 cvCreateTrackbar(tbarname2, "目的圖像", &w1, 100, on_trackbar2);/由w取值范圍可以確定w1最大值為100 cvWaitKey(0);

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論