MATLAB图像去雾处理
設計題目:圖像去霧處理
由于大氣的散射作用,照相機接收到景物反射過來的光線經過了衰減。霧天的大氣退化圖像具有對比度低、景物不清晰的特點,給交通系統及戶外視覺系統的應用帶來嚴重的影響。。鑒于圖像處理和計算機視覺中有關圖像理解、目標識別、目標跟蹤、智能導航等領域的很多算法都是假設輸入的圖像或視頻是在理想天氣條件下拍攝的,因此有霧圖像清晰化就顯得格外重要,是目前人們研究的熱點問題之一,但由于成像系統聚焦模糊、拍攝場景存在相對運動以及霧天等不利環境,使得最終獲取的圖像往往無法使用。有霧天氣條件下獲取的圖像對比度低、圖像內容模糊不清而且顏色整體偏向灰白色,圖像去霧的目的就是恢復有霧圖像的對比度和真實色彩,重現在理想天氣條件下拍攝的清晰圖像。
1、 采用直方圖均衡化方法增強霧天模糊圖像,并比較增強前后的圖像和直方圖;
2、 查閱文獻,分析霧天圖像退化因素,設計一種圖像復原方法,對比該復原圖像與原始圖像以及直方圖均衡化后的圖像;
由于圖像中存在噪聲等干擾,使得圖像模糊不清。可以采用圖像增強的方法對原圖像處理,使圖像變得清晰。而直方圖均衡化是一種常用的圖像增強的方法。圖像模糊,其圖像的像素分布不均勻,采用直方圖均衡化的方法使其圖像像素分布均勻,從而達到均衡像素分布增強圖像的目的。
設計方案
在晴朗的天氣條件下,潔凈的空氣一般是由氦氣、氧氣等氣體分子、水蒸汽、微量的固體懸浮顆粒物等成分構成。在這種大氣條件下,從物體表面反射的光線在到達成像設備的過程中,基本不會受大氣中各種成分的影響發生散射、吸收、發射等現象,而是直接到達成像設備。相對在有霧天氣條件下獲得的圖像,在這種理想天氣條件獲得的圖像,我們稱之為清晰無霧圖像。而在有霧天氣條件下獲得的圖像模糊不清,圖像對比度下降,圖像的顏色發生漂移,偏向灰白色。
無霧圖像和有霧圖像相比對比度較高,因此可以考慮增強局部對比度方法進行去霧:
1、對彩色圖像RGB模型轉換為HSI,對I分量分析圖像直方圖;
2、設置適合尺寸模版,對I分量進行局部直方圖均衡化增強,分析增強前后的圖像和直方圖。
3、查閱“基于暗原色先驗的單一圖像去霧方法”,設計圖像無霧算法。
流程框圖
輸入圖像——RGB模型中進行直方圖均衡化——RGB模型轉換為HIS模型——在HIS模型中對——亮度進行均衡化——輸出圖像——直方圖均衡化
對于連續圖像,設r和s分別表示被增強圖像和變換后圖像的灰度。為了簡單,在下面的討論中,假定所有像素的灰度已被歸一化了,就是說,當 時,表示黑色;當 時,表示白色;變換函數 與原圖像概率密度函數 之間的關系為:
(1)
式中:r為積分變量。式(1)的右邊可以看作是r的累積分布函數(CDF),因為CDF是r的函數,并單調地從0增加到1,所以這一變換函數滿足了前面所述的關于 在 內單值單調增加,對于 ,有 的兩個條件。
由于累積分布函數是r的函數,并且單調的從0增加到1,所以這個變換函數滿足對式(1)中的r求導,則:
(2)
再把結果帶入式:
(3)
由以上推到可見,變換后的變量s的定義域內的概率密度是均勻分布的。由此可見,用r累積分布函數作為變換函數可產生一幅灰度級分布具有均勻概率密度的圖像。其結果擴展了像素取值的動態范圍。
上面的修正方法是以連續隨機變量為基礎進行討論的。為了對圖像進行數字處理,必須引入離散形式的公式。當灰度級是離散值的時候,可用頻數近似代替概率值,即:(4)
式中,L是灰度級數; 是取第k級灰度值的概率; 是在圖像中出現第k級灰度的次數;N是圖像中像素數。
通常把為得到均勻直方圖的圖像增強技術叫做直方圖均衡化處理或直方圖線性化處理。式(1)的直方圖均衡化累積分布函數的離散形式可由式(5)表示:
(5)
其反變換為
(6)
直方圖均衡化效果:
原圖 直方均衡后
原圖 直方均衡后
直方圖均衡化是一種全局操作,而有霧圖像的退化程度是不均勻的,場景深度大的物體比場景深度小的物體退化的更嚴重,在某種程度上局部直方圖均衡化更能描述這種性質。
在圖像一個窗口內使用直方圖均衡化算法,然后通過窗口在圖像上不同位置的移動就計算出來了整幅圖像的局部化直方圖。這種算法的計算量比較大,使用一些優化技巧可以提高圖像處理的速度。顯示了同一幅有霧圖像在不同窗口大小下的局部直方圖均衡化結果,從中可以大略看出小窗口處理結果的對比度較大,圖像上的噪聲也比較嚴重;大窗口處理結果的比較平滑,噪聲比較小。
HIS彩色模型下的圖像增強
在圖像處理及顯示的過程中,為了能正確的使用顏色模型,需要建立顏色模型。顏色模型是三維顏色空間中的一個可見光集,它包含某個顏色域的所有模型。常見的顏色模型有RGB,HSV,NTSC,HISr等,各顏色模型之間可通過公式進行相互轉換。
HSI〔Hue-Saturation-Intensity(Lightness),HSI或HSL〕顏色模型用H、S、I三參數描述顏色特性,其中H定義顏色的波長,稱為色調;S表示顏色的深淺程度,稱為飽和度;I表示強度或亮度
當人觀察一個彩色物體時,用色調、飽和度、亮度來描述物體的顏色。色調是描述純色的屬性(純黃色、橘黃或者紅色);飽和度給出一種純色被白光稀釋的程度的度量;亮度是一個主觀的描述,實際上,它是不可以測量的,體現了無色的強度概念,并且是描述彩色感覺的關鍵參數。而強度(灰度)是單色圖像最有用的描述子,這個量是可以測量且很容易解釋。則將提出的這個模型稱作為HSI(色調、飽和度、強度)彩色模型,該模型可在彩色圖像中從攜帶的彩色信息(色調和飽和度)里消去強度分量的影響,使得HSI模型成為開發基于彩色描述的圖像處理方法的良好工具,而這種彩色描述對人來說是自然而直觀的。
HSI模型基于兩個重要的事實:其一,I分量與圖象的彩色信息無關;其二,H和S分量與人感受顏色的方式是緊密相連的。
HSI模型中的各分量可定義在如圖1(a)中所示的雙棱錐中,其中每個橫截面如圖1(b)所示。對其中的任1個色點P,其H的值對應指向該點的矢量與R軸的夾角。這個點的S與指向該點的矢量長成正比,越長越飽和。
利用由RGB轉換成HIS的公式進行模型轉換:
基于Matlab的RGB色彩模型和HSI色彩模型的互化
變換公式:
H= θ B≤G 360-θ B>G
其中,θ= arccos 0.5?[ R?G +(R?B)]
[ R?G +(R?B)(G?B)1/2]; S=1-3
(R+G+B)[min(R,G,B)]
I=1/3*(R+G+B);
clear;clc;close; x=imread('1.jpg'); rgb=im2double(x); r=rgb(:,:,1); g=rgb(:,:,2);
b=rgb(:,:,3);%提取彩色圖像R、G、B三個色彩通道的分量。 %構建rgb到his模型的轉換公式 num=0.5*((r-g)+(r-b));
den=sqrt((r-g).^2+(r-b).*(g-b)); theta=acos(num./(den+eps)); H=theta;
H(b>g)=2*pi-H(b>g);
H=H/(2*pi);
num=min(min(r,g),b); den=r+g+b;
den(den==0)=eps; S=1-3.*num./den; H(S==0)=0; I=(r+g+b)/3;
hsi=cat(3,H,S,I);%將色調H(Hue)、飽和度S(Saturation)、強度I(Intensity)分量合并成hsi色彩空間矩陣
subplot(121),imshow(hsi),title('rgb轉hsi');%顯示結果圖像
H=hsi(:,:,1)*2*pi; S=hsi(:,:,2); I=hsi(:,:,3);
%得到R、G、B三個分量的初始矩陣,并賦為全0 R=zeros(size(hsi,1),size(hsi,2)); G=zeros(size(hsi,1),size(hsi,2)); B=zeros(size(hsi,1),size(hsi,2));
%當H分量在0到2/3pi之間時 idx=find((0<=H)&(H<2*pi/3)); B(idx)=I(idx).*(1-S(idx));
R(idx)=I(idx).*(1+S(idx).*cos(H(idx))./cos(pi/3-H(idx))); G(idx)=3*I(idx)-(R(idx)+B(idx));
%當H分量在2/3pi到4/3pi之間時 idx=find((2*pi/3<=H)&(H<4*pi/3)); R(idx)=I(idx).*(1-S(idx));
G(idx)=I(idx).*(1+S(idx).*cos(H(idx)-2*pi/3)./cos(pi-H(idx))); B(idx)=3*I(idx)-(R(idx)+G(idx));
%當H分量在4/3pi到2pi之間時 idx=find((4*pi/3<=H)&(H<=2*pi)); G(idx)=I(idx).*(1-S(idx));
B(idx)=I(idx).*(1+S(idx).*cos(H(idx)-4*pi/3)./cos(5*pi/3-H(idx))); R(idx)=3*I(idx)-(G(idx)+B(idx));
rgb1=cat(3,R,G,B);%合并矩陣得到結果
subplot(122),imshow(rgb1),title('hsi轉rgb');
matlab源程序
[fname pname]=uigetfile({'*.png';'*.jpg'},'select a image');
Im = imread(fname);
axes(handles.axes1);
imshow(Im);imwrite(Im,'image1.tif');
axes(handles.axes2);
Im_1=rgb2gray(Im);
imhist(Im_1,64);
2、在RGB模型中對其進行直方圖均衡化
RGB=imread('image1.tif');
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);r=histeq(R);
g=histeq(G);
b=histeq(B);
Im2=cat(3,r,g,b);
axes(handles.axes3);
imshow(Im2);
axes(handles.axes4);
Im_2=rgb2gray(Im2);
imhist(Im_2,64);
3、在HIS模型中對亮度進行均衡化
F=imread('image1.tif');
F=im2double(F);
r=F(:,:,1);
g=F(:,:,2);
b=F(:,:,3);
th=acos((0.5*((r-g)+(r-b)))./((sqrt((r-g).^2+(r-b).*(g-b)))+eps));
H=th;
H(b>g)=2*pi-H(b>g);
H=H/(2*pi);
S=1-3.*(min(min(r,g),b))./(r+g+b+eps);
I=(r+g+b)/3;
hsi=cat(3,H,S,I);
IE=histeq(I);
RV=cat(3,H,S,IE);
HV=RV(:,:,1)*2*pi;
SV=RV(:,:,2);
IV=RV(:,:,3);
R=zeros(size(HV));
G=zeros(size(HV));
B=zeros(size(HV));
%RG Sector;判斷H所在范圍
id=find((0<=HV)& (HV<2*pi/3));
B(id)=IV(id).*(1-SV(id));
R(id)=IV(id).*(1+SV(id).*cos(HV(id))./cos(pi/3-HV(id)));
G(id)=3*IV(id)-(R(id)+B(id));
%BG Sector
id=find((2*pi/3<=HV)& (HV<4*pi/3));
R(id)=IV(id).*(1-SV(id));
G(id)=IV(id).*(1+SV(id).*cos(HV(id)-2*pi/3)./cos(pi-HV(id)));
B(id)=3*IV(id)-(R(id)+G(id));
%BR Sector
id=find((4*pi/3<=HV)& (HV<2*pi));
G(id)=IV(id).*(1-SV(id));
B(id)=IV(id).*(1+SV(id).*cos(HV(id)-4*pi/3)./cos(5*pi/3-HV(id)));
R(id)=3*IV(id)-(G(id)+B(id));
Im3=cat(3,R,G,B);
Im3=max(min(Im3,1),0);
axes(handles.axes5);
imshow(Im3);
axes(handles.axes6);Im_3=rgb2gray(Im3);
imhist(Im_3,64);
處理前后效果圖:
利用直方圖均衡化的方法對圖像進行增強,只是對像素分布進行的均衡處理。在均衡各色彩像素的同時,亦把圖像中的各噪聲分量也均衡化了,雖然實現了圖像增強了作用,但不能很好的把圖像中噪聲分量完全消去。
在直方圖均衡化之后再在HIS彩色模型中對圖像的色調、色飽和度和亮度各個分量進行處理,能夠很好的實現圖像增強的目的。運用RGB模型與HIS模型之間的各個分量的相互轉換的公式,可以很方便的對RGB彩色圖像進行圖像增強的操作,但是對單幅圖像的增強操作,存在邊緣和細節模糊的現象。
設計總結
大范圍的霧、霾導致受污染城市的交通瀕臨癱瘓、戶外工程項目、圖像采集系統、遙感圖像成像以及戶外計算機視覺系統的正常運轉等都受到了極大的影響。霧、霾的出現降低了場景的可見度,改變了捕獲圖像的色彩,降低了照片的對比度與清晰度,這也為后續的圖像處理帶來困難。因此,如何對圖像進行有效去霧,恢復場景色彩在計算機視覺以及計算機圖形圖像學領域中就顯得尤為重要。
在有霧天氣條件下拍攝時,由于場景表面反射的光線受到空氣中懸浮顆粒的散射而發生衰減,這導致了圖像對比度的下降,同時場景周圍環境中的光線也會被空氣中的懸浮顆粒散射,散射后的光線進入成像設備又會導致圖像顏色發生漂移,整體看上去圖像很模糊,圖像中的細節內容辨認不清并且顏色偏向灰白色。為了恢復出清晰的圖像,需要從如下方面入手:
七、參考文獻
1 Rafael C. Gonzalez,Richard E. Woods.數字圖像處理.電子工業出版社,2008.11
2 何凱明,孫劍,湯曉鷗.基于暗原色先驗的單一圖像去霧方法.香港中文大學.
3 王林方.MATLAB可視化界面設計.2010.4
4 MATLAB實現RGB與HIS的相互轉換.
5 何家峰,王華香,崔苗,朱錚濤.圖像處理與分析實驗指導.廣東工業大學.2006.6
6 《圖像工程》上冊 章毓晉 清華大學出版社
7 《MATLAB R2008 數字圖像處理與分析實例教程》 趙書蘭 化學工業出版社
8 《數字圖像處理與分析(第二版)》 楊帆 北京航空航天大學出版社
總結
以上是生活随笔為你收集整理的MATLAB图像去雾处理的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 本地音频播放,使用AVFoundatio
 - 下一篇: postgis 导出 栅格_postgi