一、算法实现
本文研究低照度图像反转图像与雾天图像的相似之处,针对暗原色先验 去雾算法进行图像去雾后会出现块效应以及透射率细化所采用的软抠图法存 在的时间复杂度高等问题,本文研究了改进的暗原色先验与直方图均衡化融 合的低照度图像增强算法。采用常数替代最小值滤波,对图像进行逐像素处 理,快速求解出精简透射率。通过引进参数对精简透射率进行补偿,防止图 像像素点的通道最小值较大导致的图像失真问题发生。对于大气光值采用四 叉树算法进行估计。再对经过暗原色先验算法处理后的图像进行直方图均衡 化处理,使得图像灰度直方图由非均匀分布变换为在灰度范围内的均匀分布, 进一步提高对比度,最后进行图像反转从而获得增强后的低照度图像。仿真 结果表明,改进的算法提高了低照度图像的亮度与对比度,有效的消除了块 效应,图像色彩还原度高,提升了图像的可视性,且与软抠图法相比运行速 率明显提高。但对低照度图像景深处的增强效果不明显。 针对上述算法存在的缺点以及传统同态滤波算法传递函数参数过多难以 控制和多尺度 Retinex 算法容易产生光晕伪影现象等问题,研究了一种改进 的基于同态滤波及多尺度 Retinex 低照度图像增强算法。首先对低照度图像 的 R、G、B 三种分量分别用改进的同态滤波算法进行增强,提高图像对比 度;然后将图像从 RGB 颜色空间转换到 HSV 颜色空间;在 HSV 颜色空间对 饱和度分量进行自适应非线性拉伸,同时用改进的多尺度 Retinex 算法对亮 度进行增强处理,对照射分量用伽马变换进行校正,对反射分量用 Sigmoid 函数进行处理,最后将图像再转换至 RGB 颜色空间输出。用 Matlab 对图像 进行仿真处理,实验表明该算法提高了低照度图像的信息熵、峰值信噪比和 对比度,提升了低照度图像的视觉效果。
二、代码展示
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});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_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)
参考文献
详情资料请扣扣:1341703358,本文对低照度图像增强算法展开研究。 通过对经典的低照度图像增强算法进行理论研究和仿真实验,分析其存在的问 题。在原有图像增强算法的基础上,研究了两种改进的低照度图像增强算法, 并通过实验仿真来对比验证算法的有效性