• 大小: 1.43MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-06
  • 语言: Matlab
  • 标签: 去雾  

资源简介

测试可用的MATLAB图像去雾源代码,附带原理论文

资源截图

代码片段和文件信息

%  CORRESPONDENCE INFORMATION
%  This code is written by Gaofeng MENG 
%
%  Gaofeng MENG:  
%  National Laboratory of Pattern Recognition
%  Institute of Automation Academy of Sciences Beijing 100190
%  Comments and bug reports are welcome.  Email to gfmeng@nlpr.ia.ac.cn
%
%  WORK SETTING:
%  This code has been compiled and tested by using MATLAB R2009a
%
%  For more detials please see our paper:
%  Gaofeng MENG Ying WANG Jiangyong DUAN Shiming XIANG Chunhong PAN. 
%  Efficient Image Dehazing with Boundary Constraint and Contextual Regularization 
%  ICCV Sydney Australia pp.617-624 3-6 Dec. 2013.
%
%  Last Modified: Feb. 14 2014 By Gaofeng MENG
%  

function A = Airlight(HazeImg method wsz)
% estimating the global airlight
%
if strcmp(method ‘manual‘)
    h = figure imshow(HazeImg []); 
    title(‘manual airlight estimation: left click to pick a most hazy pixel. ‘)
    [x y] = ginput(1);
    A = HazeImg(round(y) round(x) :);
    A = double(A) -1;
    A = min(A 255);
    close(h);
elseif strcmp(method ‘he‘)
    A = airlight_he(HazeImg wsz);    
elseif strcmp(method ‘our‘)
    A = airlight_our(HazeImg wsz);
else
    error(‘parameter error.‘);
end

%% 
function A = airlight_our(HazeImg wsz)
% estimating A channel by channel separately
for k = 1 : 3
    minImg = ordfilt2(double(HazeImg(: : k)) 1 ones(wsz) ‘symmetric‘);
    A(k) = max(minImg(:));
end

%%
function A = airlight_he(HazeImg wsz)
% estimating A using He‘s method
hsv = rgb2hsv(HazeImg);
GrayImg = hsv(: : 3);
[nRows nCols bt] = size(HazeImg);

% computing dark channel
DarkImg = min(double(HazeImg) [] 3);
DarkImg = ordfilt2(DarkImg 1 ones(wsz) ‘symmetric‘);

topDark = sort(DarkImg(:) ‘descend‘);
idx = round(0.001 * length(topDark));
val = topDark(idx); 
id_set = find(DarkImg >= val);  % the top 0.1% brightest pixels in the dark channel
BrightPxls = GrayImg(id_set);
iBright = find(BrightPxls >= max(BrightPxls));
id = id_set(iBright); id = id(1);
row = mod(id nRows);
col = floor(id / nRows) + 1;

% A is a vector
A = HazeImg(row col :);
A = double(A(:));


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2165  2014-02-17 09:51  dehaze_code\Airlight.m

     文件       1469  2014-02-17 09:51  dehaze_code\Boundcon.m

     文件       2913  2014-02-17 09:51  dehaze_code\CalTransmission.m

     文件    1375311  2014-12-16 12:48  dehaze_code\dehaze.pdf

     文件       1185  2014-02-17 09:51  dehaze_code\Dehazefun.m

     文件       1524  2015-04-10 11:00  dehaze_code\demo.m

     文件     199545  2011-08-19 14:08  dehaze_code\examples\sam_1.bmp

     目录          0  2015-06-02 21:11  dehaze_code\examples

     目录          0  2015-01-08 20:42  dehaze_code

----------- ---------  ---------- -----  ----

              1584112                    9


评论

共有 条评论