基于Matlab的暗通道先验、Retinex去雾图像增强研究
????????近幾年視頻監控系統越來越發達,但在低照度環境中,由于光照不足而 導致圖像亮度低,細節信息丟失嚴重,對圖像的識別帶來困難。因此對低照 度圖像增強算法進行研究有著重要的理論意義與應用價值。
????????圖像去霧技術雖然經歷了長期的發展,并取得了大量研究成果,但仍然存在 不少難點問題亟需解決。圖像去霧技術難點歸納如下:
- 普適性 ;室外環境復雜多樣,不同的有霧圖像有不同的景物深度和不同的霧濃度,各 種去霧算法對不同有霧圖像的去霧和增強效果不同,很難保證有某種去霧方法能 對所有有霧圖像都取得很好的去霧效果。
- 實時性; 要得到廣泛應用,算法必須滿足實時性要求。基于圖像增強原理的去霧方法 中雖然有不少方法計算簡單,能夠滿足實時性要求,但是去霧效果卻一般。而基 于物理模型的去霧方法雖然去霧效果很好,恢復圖像自然,但是計算復雜度高, 時間開銷大,很難滿足實時性要求。
- 圖像評價標準; 目前對于霧天復原圖像沒有統一的評價標準,主客觀評價結果并不表現出高 度一致性,有時客觀評價結果很好的圖像,主觀評價結果可能一般,反之,有時 主觀評價結果出眾的圖像,客觀評價結果可能不理想,這是由于人類主觀視覺感 受受很多因素的影響,而不是僅僅取決于單一客觀指標。
一、算法實現
????????本文研究低照度圖像反轉圖像與霧天圖像的相似之處,針對暗原色先驗 去霧算法進行圖像去霧后會出現塊效應以及透射率細化所采用的軟摳圖法存 在的時間復雜度高等問題,本文研究了改進的暗原色先驗與直方圖均衡化融 合的低照度圖像增強算法。采用常數替代最小值濾波,對圖像進行逐像素處 理,快速求解出精簡透射率。通過引進參數對精簡透射率進行補償,防止圖 像像素點的通道最小值較大導致的圖像失真問題發生。對于大氣光值采用四 叉樹算法進行估計。再對經過暗原色先驗算法處理后的圖像進行直方圖均衡 化處理,使得圖像灰度直方圖由非均勻分布變換為在灰度范圍內的均勻分布, 進一步提高對比度,最后進行圖像反轉從而獲得增強后的低照度圖像。仿真 結果表明,改進的算法提高了低照度圖像的亮度與對比度,有效的消除了塊 效應,圖像色彩還原度高,提升了圖像的可視性,且與軟摳圖法相比運行速 率明顯提高。但對低照度圖像景深處的增強效果不明顯。 針對上述算法存在的缺點以及傳統同態濾波算法傳遞函數參數過多難以 控制和多尺度 Retinex 算法容易產生光暈偽影現象等問題,研究了一種改進 的基于同態濾波及多尺度 Retinex 低照度圖像增強算法。首先對低照度圖像 的 R、G、B 三種分量分別用改進的同態濾波算法進行增強,提高圖像對比 度;然后將圖像從 RGB 顏色空間轉換到 HSV 顏色空間;在 HSV 顏色空間對 飽和度分量進行自適應非線性拉伸,同時用改進的多尺度 Retinex 算法對亮 度進行增強處理,對照射分量用伽馬變換進行校正,對反射分量用 Sigmoid 函數進行處理,最后將圖像再轉換至 RGB 顏色空間輸出。用 Matlab 對圖像 進行仿真處理,實驗表明該算法提高了低照度圖像的信息熵、峰值信噪比和 對比度,提升了低照度圖像的視覺效果。
?
二、代碼展示
????????RGB 顏色空間目前是圖像處理領域應用最為廣泛的顏色空間模型,它可以 展示人眼可觀察到的所有顏色。該顏色空間基于笛卡爾坐標系統,將紅(R)、綠 (G)、藍(B)作為其基本色,R、G、B 同時分別對應笛卡爾坐標系統的三個坐標 軸。R、G、B 三種基本色可以疊加生成自然界常見的顏色光,同樣各種顏色光 也可以分解成紅、綠、藍這三種基本色。
function varargout = main(varargin)% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help selectFile% Last Modified by GUIDE v2.5 12-Apr-2022 16:49:27% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @selectFile_OpeningFcn, ...'gui_OutputFcn', @selectFile_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []); if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT% --- Executes just before selectFile is made visible. function selectFile_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to selectFile (see VARARGIN)% Choose default command line output for selectFile handles.output = hObject;% Update handles structure guidata(hObject, handles);% UIWAIT makes selectFile wait for user response (see UIRESUME) % uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = selectFile_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure varargout{1} = handles.output;% --- Executes on button press in pushbutton1.選擇文件按鈕 function pushbutton1_Callback(hObject, eventdata, handles)axes(handles.axes5);%綁定控制的是那個axes[filename,pathname]=uigetfile({'*.jpg';'*.png'},'選擇測試圖片文件');picturepath=[pathname,filename]; before=imread(picturepath); imshow(before); % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)?
?
參考文獻
【1】王小元. 低照度圖像增強算法的研究與實現[D]. [碩士學位論文].四川: 西 南科技大學, ????????2016.?
【2】田小平, 喬東.?基于雙直方圖均衡化的色彩圖像增強[J]. 西安郵電 大學學報, 2015.
詳情資料請扣扣:1341703358,本文對低照度圖像增強算法展開研究。 通過對經典的低照度圖像增強算法進行理論研究和仿真實驗,分析其存在的問 題。在原有圖像增強算法的基礎上,研究了兩種改進的低照度圖像增強算法, 并通過實驗仿真來對比驗證算法的有效性?
總結
以上是生活随笔為你收集整理的基于Matlab的暗通道先验、Retinex去雾图像增强研究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一行代码中过时的通知写法更正;
- 下一篇: Delphi 10.4.1 游戏开发引擎