MATLAB图像去雾霭算法及其实现
MATLAB圖像去霧靄算法及其實現
摘要 霧靄等天氣條件下獲得的圖像,具有圖像不清晰,顏色失真等等一些圖像退化的現象,直接影響了視覺系統的發揮。因此,為了有效的改善霧化圖像的質量,降低霧靄等天氣條件下造成戶外系統成像的影響,對霧靄圖像進行有效的去霧處理顯得十分必要。
本設計提出了三種圖像去霧算法,一種是基于光照分離模型的圖像去霧算法;一種是基于直方圖均衡化的圖像去霧算法;還有一種是基于暗原色先驗的圖像去霧算法。并在MATLAB的基礎上對現實生活的圖像進行了去霧處理,最后對不同的方法的處理結果進行了簡要的分析。
關鍵詞:圖像去霧 光照分離 直方圖均衡化 暗原色先驗
目 錄
摘要 I
Abstract. II
目錄
1緒論圖像去霧靄算法及其實現 1
1.1研究背景及意義 1
1.2當前圖像去霧靄技術發展現狀及其趨勢 2
1.3 本文的章節安排 2
1.4小結 3
2圖像去霧靄基礎理論 4
2.1霧靄的形成機理 4
2.2圖像去霧算法 4
2.2.1圖像增強技術 5
2.2.2圖像復原技術 5
2.3基于圖像增強的去霧靄算法 5
2.3.1同態濾波 6
2.3.2光照分離模型 7
2.3.3小結 11
2.4基于直方圖均衡化的圖像去霧算法 11
2.4.1直方圖均衡化去霧原理 11
2.4.2直方圖均衡化模型 12
2.4.3直方圖均衡化的算法步驟 12
2.4.4小結 16
2.5基于圖像復原的去霧靄方法 16
2.5.1暗原色先驗去霧靄原理 16
2.5.2暗原色先驗模型 16
2.5.3算法概述 17
2.5.4小結: 20
3實驗結果 21
4總結與展望 22
附錄1 光照分離代碼 23
附錄2 基于直方圖均衡化的圖像去霧代碼 25
附錄3 暗原色先驗的去霧代碼 27
參考文獻 29
致謝 30
圖像去霧靄算法及其實現
1緒論圖像作為人類感知世界的主要視覺基礎,是人類獲取信息以及表達信息的重要方法。因此一些霧化圖像十分有必要進行一些處理。在本設計的開頭部分,這章講述了圖像去霧的一些研究背景以及意義,主要介紹了當前去霧的算法以及發展趨勢。最后介紹了本文的主要工作內容。
1.1研究背景及意義
社會在不斷的發展,各種高科技也在不斷的更新 ,一年比一年的霧霾現象也比較嚴重了。近些年,在我國出現了比較頻繁的、覆蓋區域也比較廣泛的霧霾天氣。尤其是大陸南方等地區。近幾年的空氣質量逐步退化,一些惡劣天氣也頻繁出現,PM2.5值越來越引起人們的關注。在有霧天氣下拍攝的圖像,由于空氣重混入了不少的渾濁雜質對光的吸收和散射產生了嚴重的影響,最終導致了圖像模糊不清,給人一種不美觀的第一感覺。上述視覺效果不好不僅僅只是針對圖像成像而造成的影響,給判定目標會帶來一定的麻煩。在圖像、視頻的獲取與空氣質量息息相關,然而隨著工業化的進程,大氣污染日益嚴峻。大氣霧靄環境下圖像成像欠佳,使得圖像后續處理,如目標識別等任務難度增加;在衛星遙感監測、公路監控等各方面都會造成極大的影響。本設計以公路監控為例,由于大霧彌漫,道路的能見度很低,駕駛員通過視覺獲得道路的信息往往很模糊,進一步造成一些不必要的事故發生。由此可見,對霧天圖像進行快速有效的處理顯得十分必要。
圖1四川師范大學成龍校區某角落
由圖1可以很明顯的看出,受濃霧的影響,圖像的質量退化嚴重,許多地方顯得十分模糊,基本無法識別和提取景物的特征。因此對圖像去霧技術的研究,恢復圖像等信息的處理顯得十分重要。
1.2當前圖像去霧靄技術發展現狀及其趨勢
圖像去霧技術是通過一定的方法和手段,去除圖像中霧的干擾,恢復出有效的圖像信息及其特征,并能得到一種良好的視覺效果的圖像。
圖像去霧技術經歷了一個漫長的過程。1992年,L.Bissonnette等人針對霧和雨天氣下所做的圖像進行了研究;隨后John P.Oakley等人針對霧靄天氣下所拍攝的彩色圖像進行了去霧處理,并取得了一定的成果。目前圖像去霧技術的主流是向基于模型與基于非模型的兩個角度展開的。其中,基于非模型的方法可以簡單的歸納為圖像對比度增強的問題。比較典型和常用的圖像增強方法包括直方圖均衡化算法、曲波變換、小波方法、以及Retinex算法等。每種算法針對不同的場合和對象都取得不錯的效果去霧效果,但是每種方法都有不同程度的不足,所以不斷的引入新方法和新手段,才能使得該領域保持旺盛的生命力。
1.3 本文的章節安排
本文主要對以下幾個方面進行研究和分析:
第一章緒論部分首先論述了圖像去霧的研究背景及其發展趨勢。
第二章詳細的論述了圖像去霧靄的基礎理論,包括圖像的增強及其復原。以及運用直方圖均衡化、光照分離模型、暗原色先驗的方法來處理霧化圖像。
并對去霧結果進行了簡要的分析。
第三章給出實驗結果,對不同方法處理霧化圖像進行了對比,并得出了相關的結論。
第四章對本文進行了簡要的總結。
以上方法,本設計采用的直方圖均衡算法是最基本的,是研究暗原色先驗方法做對比時的參照;同態濾波算法在圖像增強方面也取得了很大的進展;曲波變換能夠很好的增強曲線邊緣;暗原色先驗算法是一種描述顏色恒常性的模型,具有使圖像更加清晰化,圖像特征更加明顯,因此在圖像增強方面暗原色先驗要優于。
1.4小結
本設計圍繞圖像增強和圖像復原去霧兩個方面,對圖像去霧技術涉及的內容進行了簡單的介紹。根據霧天圖像去霧處理的情況,采用不同的方法對霧化圖像進行處理,并給出了各種去霧算法的實驗結果圖、不同方法的結果對比。采用主觀和客觀評價相結合的方式對圖像質量進行評估。
2圖像去霧靄基礎理論
為了實現霧化圖像的去霧處理,本章首先對霧靄的形成過程出發進行了簡單的闡述,研究了圖像去霧算法的分類主要包括圖像增強技術以及圖像復原技術。
2.1霧靄的形成機理
霧實際上是由懸浮顆粒在大氣中的微小液滴構成的氣溶膠,常呈現乳白色,其底部位于地球表面,所以也可以看做是接近地面的云。靄其實跟霧區別不大,它的一種解釋是輕霧,多呈現灰白色,與霧的顏色十分接近。
霧靄作為一種災害性的天氣,會引起室外能見度降低,一些高速公路也會因此封鎖道路,航空運輸方面也會因此延誤航班等等交通工具無法正常的使用。另外,人們長期停留在霧靄天氣的環境中,人體會吸入不少的懸浮顆粒等有害物質,對人們的身體健康有著極大的影響,會對人體造成肺病或者流感等其他疾病。
2.2圖像去霧算法
圖像去霧算法可以分為兩大類:一類是圖像增強;另一類是圖像復原。本設計將下面兩個小節中逐步介紹上述的兩種技術。圖2介紹了圖像去霧算法的分類:
圖像去霧算法
霧化圖像復原
霧化圖像增強
全局化增強
基于先驗信息
基于深度關系
基于偏微分
局部化增強
圖2圖像去霧算法分類
2.2.1圖像增強技術
為了改善視覺效果或者便于人們對圖像的判別和分析,根據圖像的特征采取簡單的改善方法或者加強特征的措施叫做圖像增強。圖像增強可分為兩大類:頻率域法和空間域法。空間域處理主要包括:點處理,模塊處理即領域處理。頻率域處理主要包括:高、低通濾波、同態濾波等等。
圖像增強可分為兩大類:頻率域法和空間域法。空間域處理主要包括:點處理,模塊處理即領域處理。頻率域處理主要包括:高、低通濾波、同態濾波等等。
2.2.2圖像復原技術
從廣義上講,圖像復原是一個求逆問題,逆問題經常存在非唯一解,甚至無解。圖像復原的目的是將所觀測到的退化圖像恢復到退化前的原始圖像,這種恢復過程在很多圖像處理中的應用十分重要。目前應用最廣泛的圖像復原技術是Lucf-Richardson,隨著迭代次數的增加,最終將會收斂在泊松統計的最大似然解處。為了更好的對圖像復原的理解,圖3為圖像復原的流程圖:
圖像復原
濾波器
g(x,y) f(x,y)
圖3 圖像復原流程圖
其中g(x,y)為降質圖像函數,f(x,y)為真實圖像函數。
在圖像復原技術可以分為以下幾類:
1)在給定退化模型條件下,分為無約束和有約束兩大類。
2)根據是否需要外界干預,分為自動和交互兩大類。
3)根據處理所在的域,分為頻率域和空間域。
2.3基于圖像增強的去霧靄算法
在本設計中將采用同態濾波的方式,通過求圖像I的平滑來進行估計光照分量L,從而做到對兩個分量進行分離。下面的論述中將著重介紹光照分離模型,使用同態濾波的方式來估計光照分量L。這種方法在人臉識別領域有一定的應用,可以有效地消除光,雨、霧等天氣和環境減少影響人臉圖像的質量,并且可以實現本地對象保持的細節。
通常,圖像I(x,y)可以由光照分量L(x,y)和反射分量R(x,y)的乘積,光照分量L取決于照射源,而反射分量R取決于物體的內在不變的屬性,如物體表面反射系數和表面法線等。因此光照預處理的問題可以轉化為給定圖像I用來解決R的問題。
2.3.1同態濾波
在進行光照分離前,我們使用同態濾波來得到光照分量L。在生活中會得到這樣的圖像,它的動態范圍很大,而我們感興趣部分的灰度又很暗,圖像細節無法辨認,采用一般的灰度級線性變換是不行的。同態濾波屬于圖像頻率域處理范疇,其作用是對圖像灰度范圍進行調整,通過消除圖像上照明不均的問題,增強暗區的圖像細節,同時又不損傷亮區的圖像細節。
圖像的灰度由照射分量和反射分量合成。反射分量反映圖象內容,隨圖像細節不同在空間上作快速變化。照射分量在空間上通常均具有緩慢變化的性質。照射分量的頻譜落在空間低頻區域,反射分量的頻譜落在空間高頻區域。
2.3.2光照分離模型
在估計出光照分量后,進行計算物體內在的反射分量:R=I/L.
本設計將利用全變分模型來估計反射分量。全變分模型是一種經典的圖像恢復方法,在圖像中主要用于從觀測圖像中恢復圖像真實,具有模型簡單、需要優化的參數少的特點。
令l=logL,r=logR,i=logI則有:
i=l+r; (2-6)
l是在空間上平滑的,在整個圖像中變化緩慢;r在一個局部小鄰域內是一個常量,r在邊緣區域則變化激烈。反射系數r可以通過一個簡單的值來進行分割;l值大于r,并且接近于圖像的亮度值。
min∫︱▽l(x,y)︱dxdy ; l∈BV(Ω) (2-7)
s.t.‖i-l‖^2≤σ ; (2-8)
對于公式(2-7),公式(2-8)其中σ為一個常數,Ω是函數支撐集,范圍覆蓋整個圖像。上述式的含義是光照l在空間上是平滑的,同時反射系數可以通過一個簡單的閥值分割出來。可以將上述式子改寫成:
E=min[∫▽l+λ(l-i)^2];l∈BV(Ω) (2-9)
其中Ω是圖像區域,λ是非負實數。即可求得光照l的估計。
這種算法的一般步驟如下:
1)給定圖像I,取得對數得到i=logI;
2)去初始值l0=i,根據上述公式求解全變模型。求得l。
3)對光照l做指數運算,得到L。
4)再根據公式求取反射系數模型R。
基于光照分離模型圖像去霧流程圖如圖5:
構造一個高斯濾波器
求取光照分量L
對圖像進行灰度處理
輸出圖像I
輸入圖像PS
建立全變分模型
求取反射分量R
圖5光照分離模型圖像去霧流程圖
運用matlab軟件編寫程序代碼獲取下面效果圖:
圖6原始圖像
圖7高通濾波器
圖8原始直方圖灰度值
圖9均衡后的直方圖
圖10光照分離后的圖像
2.3.3小結
從上述圖像中可以看出這種算法是把頻率過渡和灰度變換相結合的圖像增強的方法,利用壓縮亮度范圍和增強對比度來改善圖像質量的處理技術。能夠很好的去掉光照不均勻所產生的黑斑;能夠比較好的保持圖像的原始風貌。
2.4基于直方圖均衡化的圖像去霧算法
本章主要討論了直方圖均衡化處理的基本原理以及相關模型,并用MATLAB語言實現了直方圖均衡化的圖像增強處理,結果表明,直方圖均衡化方法并不能生成平坦的直方圖,但它具有能增強圖像灰度級的動態范圍的特性。
2.4.1直方圖均衡化去霧原理
目前,對于去霧圖像進行清晰化處理的技術主要分為兩大類:一種是基于圖像處理,通過增強圖像對比度而達到清晰化目的;另一種是基于物理模型的圖像復原方法,從霧形成原因的角度對大氣散射作用進行建模分析處理的。圖11為簡單的直方圖均衡的分類示意圖:
圖11直方圖均衡的分類示意圖
基于直方圖均衡化的算法以概率論為基礎,用灰度變換達到圖像增強的目的,是圖像增強中最常用的算法之一。本文介紹一種基于累積分布函數變換法為基礎的直方圖均衡化。它可以通過對直方圖進行均勻修正技術,可使圖像的灰度間距增大,從而使圖像變得更加清晰。
2.4.2直方圖均衡化模型
對于連續圖像,設r和s分別代表被增強圖像和變換圖像后圖像的灰度。為了簡單,在下面的討論中,假定所有像素的灰度都被歸一化了,就是說,當r=s=0時,表示黑色;當r=s=1時表示白色;變換函數T(r)與原圖像概率密度函數P(r)之間的關系為:
s=T(r)=∫Pr(r)dr (0 ≤r≤ 1) (2-10)
這是原始圖像灰度r的,累積分布函數。式中累積分布函數是r的函數,單調從0增加到1,所以這個變換函數滿足求導由此可見,變換后的變量s的定義域內的概率密度是均勻分布的。由此可見,用r累積分布函數作為變換函數可產生一幅灰度級分布具有均勻概率密度的圖像。其結果擴展了像素取值的動態范圍。
為了對圖像進行數字處理,必須引入離散形式的公式。當灰度級是離散值的時候,可用頻數近似代替概率值,即:
Pr(rk)=
公式2-12)中,L是灰度級數;
是取第k級灰度值的概率;Nk是在圖像中出現第k級灰度的次數;n是圖像中像素數。
通常把為得到均勻直方圖的圖像增強技術叫做直方圖均衡化處理或直方圖線性化處理
2.4.3直方圖均衡化的算法步驟
直方圖均衡化的算法步驟如下:
1)、列出原始圖像和變換后圖像的灰度級:I,j=0,1,,L-1,其中L是灰度級的個數;
2)、統計原圖像各灰度級的像素個數ni;
3)、計算原始圖像直方圖:P(i)=ni/N,N為原始圖像像素總個數;
4)、利用灰度變換函數計算變換后的灰度值,并四舍五入:j=INT[(L-1)Pi+0.5];
5)、確定灰度變換關系i→j,根據此將原圖像的灰度值f(m,n)=i修正為g(m,n)=j統計變換后各灰度級的像素個數nj;
6)、計算變換后圖像的直方圖:p(j)=nj/N
圖12 直方圖均衡化示意圖
根據圖12直方圖均衡化示意圖做出下面圖像效果:
圖13輸入圖像
圖14原始圖像直方圖
圖15均衡化后的直方圖
圖16均衡化的圖像
圖17 直方圖均衡化后的總示意圖
2.4.4小結
結果分析:由輸入圖像圖13和輸出圖像圖16可以很清楚的看出,圖像效果很好的增強,效果比較明顯,圖14原始圖像的直方圖分布比較密集,灰度級動態范圍窄而集中于灰度級的中部,導致了圖像的對比度低而使整幅圖像模糊不清,圖15經過直方圖均衡化處理后直方圖的成分覆蓋了灰度級很寬的范圍,而且像素的分布沒有不太均勻,圖像的局部特征得到了增強。因此這種把有霧圖像的直方圖變換為均勻分布的形式,這樣就增加了像素灰度值的動態范圍從而達到增強霧天圖像整體對比度的效果。
2.5基于圖像復原的去霧靄方法
2.5.1暗原色先驗去霧靄原理
暗原色先驗(dark channel prior)由何愷明等人首先提出。暗原色先驗來自對戶外無霧圖像數據庫的統計規律,它基于經觀察得到的這么一個關鍵事實--絕大多數的戶外無霧圖像的每個局部區域都存在某些至少一個顏色通道的強度值很低的像素。
在被霧干擾的圖像里,這些暗像素的強度值會被大氣中的白光成分所充斥而變得較高。因此,這些暗像素能夠直接用來評估霧光的透射信息。利用這個先驗建立的去霧模型,結合一個已有的霧成像模型和插值法摳圖修復,可以得到高質量的去霧圖像和很好的深度圖。求取暗原色的數學表達式描述如下:
Jdark(x)=min(min(Jc(y)));c∈(r,g,b);y∈Ω(x) (2-12)
公式(2-13)中:Jdark(x)即圖像J的強度值接近于0的暗原色;Jc為J的R、G、B三通道中的一個通道;Ω是以x為中心的一塊區域,這里假設圖像Ω具有相同的深度。在帶霧里,這些暗原色的強度值會變高,并且決定著透射率的大小,這樣就能夠很好的估測透過率了。暗原色點主要存在于物體的局部陰影、自然景觀的投影等等。關于引起暗原色的原因,何愷明這樣解釋:紅、藍、綠為光學三原色,即使是嫩綠的樹木,其紅色和藍色的亮度也會很低,所以也會有暗原色。
2.5.2暗原色先驗模型
(1)估測透射率分布
透射率反映了光在大氣中傳輸的重要特性。假設大氣是均勻的在一定時刻對于整幅圖像來說,全散射系數β是個定值,因此圖像上各點退化的程度是不同的,是由傳輸距離即場景深度的不同決定的。基于暗原色先驗知識和霧圖的成像模型,可以直接估計出成像時刻的霧濃度,從而估計透射率t。首先假設大氣光成分A已知,且在局部區域Ω內,透射率保持一致則有:
公式(2-14)中,c為圖像R、G、B三通道之中一個顏色通道,Ω表示以像素x為中心的塊,在這里其大小為15*15.又已知無霧圖像的暗原色值很小,接近零,鍥A≠0,則可知透射率的表達式為:
這樣就可以粗略的估計透射率圖。
(2)復原物體光線
有了投射分布,我們可以對圖像進行復原了。當t(x)接近0的時候,直接衰減鄉J(x)t(x)也會接近0,直接復原得到的原始圖像也傾向于包含噪音。因此,我們把投射因子t(x)設定了一個下限t0。最終得到的復原J(x)通過下面表達式實現:
(3) 估測大氣光
從前的大多數單一圖像去霧方法當中,大氣光成分A通常是從不透明的含霧的像素中測得。但在實際的圖像中,最明亮的像素點有可能是一輛白色的汽車或者是白色的建筑物。我們可以通過暗原色來提高大氣光的估測,我們利用它自動地估測本文中引用的所有圖像的大氣光成分。
2.5.3算法概述
具體實現步驟如下:
1)將輸入的帶霧圖像分成15*15的塊,將得到局部和全部的暗原色圖;
2)利用軟件細化透射率圖;
3)利用暗原色先驗估計大氣成分;
4)恢復無霧圖像。
這種算法的一般原理圖如下:
圖18暗原色先驗原理圖
利用MATLAB軟件編寫程序代碼獲得以下效果圖:
圖19原始圖像
圖20 dark channnel圖像
圖21透射率t的圖形
圖22去霧后的圖像
2.5.4小結:
由圖19,圖22可以看出原始圖像受霧影響模糊不清、顏色不真實的圖像在細節上更清晰,顏色更真實,視覺效果更令人滿意。這種算法適合以上各種場景的圖像去霧,無論霧的分布均勻與否,霧的濃度薄或濃,場景中深度變壞如何,都能有效地去除圖像中霧的作用,有效的提高了圖像的清晰度。從而很大程度上提高了霧天的能見度。
3實驗結果
圖23結果分析圖
光照分離光照分離模型利用壓縮亮度范圍和增強對比度來改善圖像質量的處理技術。
直方圖均衡化方法并不能生成平坦的直方圖,但它具有能增強圖像灰度級的動態范圍的特性。
暗原色先驗明顯的去除霧的干擾,提高圖像的清晰度,增強圖像色彩和細節,復原得到高質量的圖像。
由圖23可知直方圖均衡化對于灰度圖像去霧效果比較好,而暗原色先驗對于彩色圖像去霧效果比較明顯,圖像中的特征得到很好的增強,使人們能夠很好的觀測圖像給予的信息,并作出正確的判斷。
4總結與展望
直方圖是多種圖像空間域處理技術的基礎,能有效地用于圖像增強,直方圖均衡化是圖像增強的基本技術。本文分析了直方圖均衡化處理方法的基本理論并用Matlab進行了實驗。結果表明,直方圖均衡化方法并不能生成平坦的直方圖,但它具有能增強圖像灰度級的動態范圍的特性。本文在接下來的設計中提出了初始透射率的方法,利用暗原色先驗的方法 ,最后對去霧后圖像進行亮度對比度增強處理,這些去霧方法在視頻增強領域可達到基本實時處理的水平。
圖像識別技術范疇圖像識別技術的研究目標是根據觀測到的圖像,對其中的物體分辨其類別,做出有意義的判斷。即利用現代信息處理與計算技術來模擬和完成人類的認識,理解過程。
基于物理模型的霧天圖像復原算法已經取得了極大進展,但是由于勁舞退化與場景深度呈非線性關系,由此帶來的最大問題是很難保證建立的景物退化模型的正確性和寬適性。目前,大多數的圖像復原方法都建立在大氣散射模型的基礎上,并受到了此類模型的限制。即使在某些天氣情況下,使用該模型的復原方法也會失效。所以,采用更加完備的物理模型來描繪復雜的大氣狀況,探索研究基于這些模型的去污算法這一課題,在未來一段時間內都非常具有挑戰性。
附錄1 光照分離代碼
img=imread('1.jpg');
img = rgb2gray(img);
f_high = 1.0;
f_low = 0.4;
% 得到一個高斯低通濾波器
gauss_low_filter = fspecial('gaussian', [sz sz], sigma);
matsize = size(gauss_low_filter);
% 由于同態濾波是要濾出高頻部分,
% 所以我們得把這個低通濾波器轉換成一個高通濾波器.
% f_high 和 f_low 是控制這個高通濾波器形態的參數.
gauss_high_filter = zeros(matsize);
gauss_high_filter(ceil(matsize(1,1)/2) , ceil(matsize(1,2)/2)) = 1.0;
gauss_high_filter = f_high*gauss_high_filter - (f_high-f_low)*gauss_low_filter;
% 利用對數變換將入射光和反射光部分分開
log_img = log(double(img));
% 將高斯高通濾波器與對數轉換后的圖象卷積
high_log_part = imfilter(log_img, gauss_high_filter, 'symmetric', 'conv');
% 顯示高通濾波期的頻率響應
figure,freqz2(gauss_high_filter); colormap(jet(64));
function LightImage = LR(img)
[row,col,hei]=size(img);
if hei == 1
[row,col]=size(img);
ReflectImg = zeros(row,col) ;
LightImg = zeros(row,col) ;
[ReflectImg,LightImg] = ASNorm(img,0.02,10) ;
else
img_R = zeros(row,col);
img_G = zeros(row,col);
img_B = zeros(row,col);
img_R(:,:) = img(:,:,1);
img_G(:,:) = img(:,:,2);
img_B(:,:) = img(:,:,3);
ReflectImgR = zeros(row,col) ;
LightImgR = zeros(row,col) ;
[ReflectImgR,LightImgR] = ASNorm(img_R,0.02,10)
ReflectImgG = zeros(row,col) ;
LightImgG = zeros(row,col) ;
[ReflectImgG,LightImageG] = ASNorm(img_G,0.02,10) ;
ReflectImgB = zeros(row,col) ;
LightImgB = zeros(row,col) ;
[ReflectImgB,LightImgB] = ASNorm(img_B,0.02,10) ;
LightImg = zeros(row,col,3) ;
LightImg(:,:,1) =LightImgR(:,:) ;
LightImg(:,:,2) =LightImgG(:,:) ;
LightImg(:,:,3) =LightImgB(:,:) ;
附錄2 基于直方圖均衡化的圖像去霧代碼
clc; clear all; close all
% 圖像的預處理,讀入彩色圖像將其灰度化
PS = imread('c:\\ce.png'); % 讀入彩色圖像文件
figure;
subplot(2, 2, 1); imshow(PS); title('輸入的圖像')
PS=rgb2gray(PS); % 灰度化后的數據存入數組
% 繪制直方圖
[m,n] = size(PS); % 測量圖像尺寸參數
GP = zeros(1,256); % 預創建存放灰度出現概率的向量
for k = 0:255
GP(k+1) = length(find(PS==k))/(m*n);
% 計算每級灰度出現的概率,將其存入GP中相應位置
end
subplot(2, 2, 2); bar(0:255, GP, 'g'); title('原圖像直方圖')
xlabel('灰度值'); ylabel('出現概率')
% 直方圖均衡化
S1 = zeros(1,256);
for i = 1:256
for j = 1:i
S1(i) = GP(j)+S1(i);
% 計算Sk
end
end
S2 = round((S1*256)+0.5); % 將Sk歸到相近級的灰度
for i=1:256
GPeq(i) = sum(GP(find(S2==i))); % 計算現有每個灰度級出現的概率
end
subplot(2, 2, 3); bar(0:255, GPeq, 'b'); title('均衡化后的直方圖')
xlabel('灰度值'); ylabel('出現概率')
% 圖像均衡化
PA = PS;
for i = 0:255
PA(find(PS==i)) = S2(i+1);
% 將各個像素歸一化后的灰度值賦給這個像素
end
subplot(2, 2, 4); imshow(PA); title('均衡化后圖像')
附錄3 暗原色先驗的去霧代碼
close all
clc
w0=0.65; %0.65 乘積因子用來保留一些霧,1時完全去霧
t0=0.1;
I=imread(7.png);
figure;
set(gcf,'outerposition',get(0,'screensize'));
subplot(221)
imshow(I);
title('原始圖像');
[h,w,s]=size(I);
min_I=zeros(h,w);
%下面取得暗影通道圖像
subplot(223)
imshow(dark_I);
title('dark channnel的圖形');
Max_dark_channel=double(max(max(dark_I))) %天空亮度
dark_channel=double(dark_I);
t=1-w0*(dark_channel/Max_dark_channel); %取得透謝分布率圖
subplot(224)
T=uint8(t*255);
imshow(T);
title('透射率t的圖形');
t=max(t,t0);
I1=double(I);
J(:,:,1) = uint8((I1(:,:,1) - (1-t)*Max_dark_channel)./t);
J(:,:,2) = uint8((I1(:,:,2) - (1-t)*Max_dark_channel)./t);
J(:,:,3) =uint8((I1(:,:,3) - (1-t)*Max_dark_channel)./t);
subplot(222)
imshow(J);
title('去霧后的圖像');
End
參考文獻
[1]姚敏.數字圖像處理[M].北京:機械工業出版社,2006.
[2]霍宏濤.數字圖像處理[M].北京:機械工業出版社,2004.
[3]陸宗騏.C/C++圖像處理編程[M].北京:清華大學出版社,2005.01
[4]宮微微.霧天圖像的復原技術研究[D]:[碩士學位論文].武漢:華中科技大學,2010.
[5]榮觀澳.計算機圖像處理[M].北京:清華大學出版社,2000:5-9.
[6]武英.利用同態濾波改善光照不足圖像[J].南京曉莊學院學報.2007,(6):70~71.
[7]賈明橋.大霧天氣下圖像的清晰化方法[D]:[碩士學位論文].西安:西安理工大學,2006.
[8]黃黎紅.退化圖像的去霧方法[J].紅外與激光工程,2010,39(5):985-988.
[9]王勇.單幅霧天降質圖像復原方法研究[D]:[碩士學位論文].合肥:合肥工業大學,2010.
[10]樊厚春.有霧天氣圖像對比度恢復[D]:[碩士學位論文].廣州:暨南大學,2006.
[11]J.W.Tukey.Nonlinear(nonsuperposable)method for smoothing data.Conference Record EASCON,2017:673.
[12]A.Nieminen,P.Heinonen and Y.Neuvo.A new class of detail-preserving filters for image processing.IEEE Tran.On PAMI,2000(l):74-99.
[13]G.R.Arcer,R.E.Foster.Detail preserving ranked-order basedfi lters for image processing.IEEE Trans.on ASSP, 1989,37(1):83-98 .
[14]Kokkeong Tan and,John P.Oakley.Physies-Based Approach to Color Image Enhaneement in Poor Visibility Conditions[C].Opt.Soc.Am.A,2001,18(10):2460-2467.
[15] R.J,Wall,A.Klinger,and K.R.Castleman,"Analysis of ImageHistograms,"Proc.SecondInt.Cong.on Pattern Recognition,Copenhagen,1974.
[16]B.Funt,M.Drew and M.Brockington.Recovering Shading form Color Images[C].In Proc.European Comference on Computer Vision,2010:124-132.
[17]Narasimhan S G,Nayar S K.Vision and the atmosphere [C].International Journal of Computer Vision,2002,48(3):233-254.
[18]FATTALR.Single image dehazing[J].SIGGRAPH,ACM Press,2018:1-9
[19]Middleton.Vsion through the Atmosphere [M].University of Toronto Press,2011.
總結
以上是生活随笔為你收集整理的MATLAB图像去雾霭算法及其实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设计模式之单例模式(C++代码实现)
- 下一篇: 小米2s自带rec刷root_关于viv