如何採用Matlab對圖像去霧氣

2021-03-02 MATLAB技術論壇

       在工業時代,各種汙染排放越來越大,空氣中瀰漫著濃濃的霧霾,我們也是很難看到藍天白雲,對遠處看去總是霧蒙蒙的一片,很難感受到大自然的美感。

       

       甚至大媽大白天在霧霾中跳舞都會被人誤以為群魔亂舞的恐怖電影

著名軍事評論家,戰略忽悠局的張紹剛老師甚至說:霧霾是對美國天基武器的最好防禦....WTF

        可是我們心中的美好世界不應該是這樣的嘛:

  事實上圖像處理技術,已經能夠幫我們從霧霾的世界裡看到美麗的希望。

     下面一組圖,左邊是霧霾的原圖,右邊是採用了圖像處理算法去霧以後的效果。

        

     上面的效果是如何做到的呢,下面就要講一個Matlab圖像去霧的算法

                「暗通道先驗去霧」

      暗通道先驗去霧是著名的大神何凱明在他上學的時候提出的,也是目前最廣泛應用的圖像去霧算法。

       在了解這個算法之前我們需要了解一下圖像在大氣中衰減的模型:

       J是原始的無霧霾圖像,隨著它在大氣的傳輸,受到不同的大氣衰減系統的衰減t,同時還要疊加上大氣中本身蘊含的大氣輻射,最終到達我們的相機中,我們採集到的圖像就是I。

       何凱明大神發現,在無霧圖像中,每一個局部區域都很有可能會有陰影,或者是純顏色的東西,又或者是黑色的東西。因此,每一個局部區域都很有可能有至少一個顏色通道會有很低的值。把這個統計規律叫做Dark Channel Prior。

       下面的公式就是暗通道的定義。

根據暗通道趨近於0的先驗理論,計算出來了大氣透過率

         

我們看到在計算t的時候,還需要知道大氣光A的數值,事實上大氣光A可以通過如下方法計算。

1.選取暗通道圖像暗通道最亮的0.1%的像素(一般來說,這些像素表示霧濃度最大的地方)
2.取輸入圖像裡面這些像素對應的像素裡面最亮的作為大氣光。

最終就可以計算出無霧的圖像,

話不多說,貼上Matlab的代碼:

close all;

clear;clc;

tic

pic=double(imread('7-1.png'));

pic=pic/256;

figure;

imshow(pic);

[m,n,c]=size(pic);

Feature=zeros(m,n);

pic_gray=rgb2gray(pic);%灰度化

adapt=1.4;

%循環更新每個像素的 梯度圖 顏色差圖 亮度比圖

blocksize=15;

pic_min=min(min(pic(:,:,1),pic(:,:,2)),pic(:,:,3));%求暗通道

se=strel('square',blocksize);

dark_pic=imerode(pic_min,se); %腐蝕一下才是標準的暗通道

% figure,imshow(dark_I);

U=reshape(dark_pic,1,m*n);

U1=sort(U,2,'descend');%對像素亮度排序

med=round(m*n*0.1);

U2=U1(1:med);

U3=unique(U2);

[s1,s2]=size(U3);

km=1;

for i=1:s2

    [x y]=find(dark_pic==U3(i));

    [l1,l2]=size(x);

    for i=1:l1

    x1=x(i,1);

    y1=y(i,1);

    km=km+1;

    U4(km)=pic_gray(x1,y1);

    end

end

A=max(U4(:)); %最大的像素的亮度是大氣光

%A求取完畢

%計算全圖的t,並將其中已經識別出的天空像素所對應的t改為1;

t=1-0.95*(dark_pic/A);%此處用的別的方法,請改為我的方法,此處有重大更新,具體請與我聯繫

figure,imshow(t);title('粗略透過率圖');

r =30;

eps = 0.001;

t_new =guidedfilter(pic_gray, t, r, eps);%引導濾波平滑透過率

figure,imshow(t_new);title('引導濾波的精細透過率圖');

%顯示導向濾波後的t圖

%寫作需要,顯示優化後的t圖

J(:,:,1) = double((pic(:,:,1) - (1-t_new).*A)./t_new);%./A_channel;   

J(:,:,2) = double((pic(:,:,2) - (1-t_new).*A)./t_new);%./A_channel;  

J(:,:,3) = double((pic(:,:,3) - (1-t_new).*A)./t_new);%./A_channel;  

figure;

imshow(J);

title('去霧結果');

bi=1.5;

%R亮度增加

rr=double(J(:,:,1)*255);

gg=double(J(:,:,2)*255);

bb=double(J(:,:,3)*255);

[U,S,V] = svd(rr); %對圖像SVD分解

S=bi*S;%對SVD分解後的S進行比例增大

Ar=U*S*V';%svd恢復

%G亮度增加

[U,S,V] = svd(gg);

S=bi*S;

Ag=U*S*V';

%B亮度增加

[U,S,V] = svd(bb);

S=bi*S;

Ab=U*S*V';

res=cat(3,Ar,Ag,Ab);

figure

imshow(uint8(res),[]);title('SVD亮度增強');

figure

res2=cat(3,imadjust(uint8(Ar)),imadjust(uint8(Ag)),imadjust(uint8(Ab)));

imshow(uint8(res2));

title('SVD增強後拉伸');

原圖

去霧以後的圖

相關焦點

  • 車窗霧氣引發交通事故?用它一噴,3秒和霧氣說拜拜
    2017年11月,司機李師傅,平時從不在意車窗霧氣,一次通過十字路口時,先是霧氣遮擋視線誤闖紅燈,後與一輛正常通過路口的小型客車發生碰撞,造成兩輛車不同程度的損壞,雙方車上的乘客不同程度受傷。這種種事故,都是因為小小的車窗霧氣引起的。而這些小小的隱患,只要稍加注意,就可以完全避免。安全有效地清除和避免車窗霧氣,是對司機和乘客生命安全的一大保障。
  • 真正的防霧鏡片,一「鏡」解決冬天的霧氣困擾!
    康美達防霧鏡片是採用在鏡片上附一層具有防霧功能的頂膜,再加上具有創新的防治技術同時含有獨特分子結構的防霧清潔鏡布,這樣雙重配合使用,可以獲得持久無霧的視覺體驗。這種防霧鏡片能輕鬆解決近視朋友的霧氣困擾,再也不用擔心霧氣會妨礙視力。防霧鏡片不僅防霧,同時還具備防眩光、耐磨損、易清潔的功效。
  • 中心君帶你學習右腦圖像記憶法,讓你過目不忘!
    古人云「一目十行」正是開發了右腦的圖像閱讀功能,由於右腦具有超高速信息輸入的特點,因此5分鐘閱讀完一本書
  • Wowza技術:當你在Wowza transcoder插件中使用NVIDIA的NVENC硬體加速編碼時,如何降低對圖像質量的影響
    當你在Transcoder插件中使用NVIDIA NVENC硬體加速編碼時,你可能會注意到每隔幾秒中會出現視覺假象或圖像質量下降的現象。
  • MATLAB視角下的情人節
    .^2);% 定義心的下半部分y2 = -2.5*sqrt(1-sqrt(abs(x)/2));% 定義figure標題、背景等figure;% 保持figure圖像hold on;% 關閉坐標軸顯示axis off;% 使坐標軸相等axis equal;
  • 「來自星際」的圖像:NVIDIA RTX 實時渲染為電影Gods of Mars打造逼真視效
    Hyoguchi和團隊採用搭載NVIDIA Quadro RTX 6000 GPU 的聯想 ThinkStation P920 工作站、華碩ProArt Display PA32UCX-P顯示器、Blackmagic Design攝像機和DaVinci Resolve ,以及Wacom Pro 24打造複雜的星際冒險場景,製作豐富且逼真的4K電影。
  • 計算機視覺:從入門到精通,極限剖析圖像識別學習算法
    如何做好計算機視覺的研究工作,迎接更廣闊的未來職業發展,能夠上手應用,編寫屬於自己的神經網絡和計算機視覺應用?
  • 靈感博客:印花&圖像靈感
    對印花和圖像影響最大的排名前五的博客Primary Yellow:
  • 「一圖一世界」—— 探尋百度圖像搜索的奧妙
    事實上,百度此前已經藉由幾款產品,對圖像識別搜索進行過試水,之前在朋友圈風靡的百度魔圖APP,讓用戶可以根據自拍照片,找到與自己相似的明星臉。餘軼南認為,這種技術使人和世界更加自然的交流,我們將自然的圖像和自然的語言連接在一起,機器不但能告訴我這是什麼,還要能說出一句美麗的話。
  • Python圖像處理庫:Pillow 初級教程
    ,如果圖像不是從文件打開的,那麼該屬性值為None;size屬性是一個tuple,表示圖像的寬和高(單位為像素);mode屬性為表示圖像的模式,常用的模式為:L為灰度圖,RGB為真彩色,CMYK為pre-press圖像。
  • 我的世界:你見過黑色霧氣的末影人麼?新版VS舊版,你選哪個?
    我的世界:追溯9年前MC,小黑散發黑色霧氣,殭屍:我過的最慘!我的世界:你見過黑色霧氣的末影人麼?新版VS舊版,你選哪個?一、9年前的「苦力怕」長啥樣?《我的世界》苦力怕的演變歷程是這樣的:豬-灰色苦力怕-暗綠色苦力怕-淺綠色苦力怕-閃電苦力怕。所以MC9年前的苦力怕你見過長啥樣麼?
  • 圖像如何解讀?
    宮腔鏡輕巧精緻,操作自如、圖像逼真可轉播作為示教或成像備案。它不僅用來診斷婦科疾病、亦可同時進行手術,極大地減少了開腹手術之苦或摘除生殖器之弊,使婦科手術日漸簡便、安全、有效,進入融診斷、治療於一體的嶄新階段,並日益為廣大臨床醫師和病人所歡迎。
  • 工具分享:一鍵生成Facebook和Ins等社交圖像
    分享一款自動裁剪圖像的工具,可以幫您一鍵生成各大社交網站主頁的:LOGO,主頁圖片,banner等等圖片。
  • 跨界經緯:學術丨胡易容:論圖像的符號性 ——駁米切爾圖像轉向論的「後符號學」命題
    轉引自阿萊斯·艾爾雅維茨《圖像時代》,胡蘭菊、張雲鵬譯,長春 吉林人民出版社,2003 年,第 7 頁。[6] Giulio Carlo Argan,「Ideology and  Iconology,」trans. Rebecca West,Critical Inquiry,2    2,Winter,1975,pp. 299-303.[7] E. H.
  • SVI 惠更斯 2019 年圖像大賽結果
    以下是 2019 年圖像大賽的得獎名單與圖像,非常感謝各位參加者的作品,也非常感謝各位於2019年的支持。
  • 【組圖】計算機圖像識別趣圖:一個男人把一個紅蘋果放在嘴邊
    下面,新智元為你推薦一組只有計算機才會犯的錯誤。祝大家中秋快樂:)Twitter 帳戶 Jamie Ryan Kiros (@jrkiros)發布了很多她實驗室的圖像識別系統在配圖說說時犯的一些錯誤,其中不乏經典搞笑案例。下面就是系統為本屆裡約奧運會打造的一些笑話。
  • 橋架封堵採用防火棉,效果如何?
    先來通過消防滅火實驗看一看防火棉封堵橋架的效果如何☟▲ 湖北電視臺《幫女郎 · 火線說法》節目報導鑑別防火棉的好壞可直接用打火機或噴槍燒
  • 爆料文「神秘失蹤」,原始圖像未找到
    原始圖像證據仍未找到不過,也有記者調查發現,網上傳播的視頻內容確實顯示食品陳列櫃檯內的糕點上疑似有蟑螂在爬動,且該食品陳列櫃檯的外形特徵要做出行政處罰決定,必須要有原始的真實證據,「除非拿到爆料人的原始圖像,並與爆料人直接溝通,才能掌握真實情況。」記者從監管部門和星巴克方面了解到,目前這兩方面均未取得直接的圖像證據,相關方面正積極與最早發布相關信息的人士進行溝通,設法獲取爆料人的原始圖像資料,才能判斷星巴克相關門店是否存在涉嫌違法的行為。