这是关于“基于单幅图像的去雾算法研究”中matlab代码 ,特别是win_size = img_name='imagel.jpg';% 原始图像I=double(imread(img_name))/255;% 获取图像大小[h,w,c]=size(I);win_size = 7;img_size=w*h;dehaze=zeros(img_size*c,1);
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/11 15:38:16
这是关于“基于单幅图像的去雾算法研究”中matlab代码 ,特别是win_size = img_name='imagel.jpg';% 原始图像I=double(imread(img_name))/255;% 获取图像大小[h,w,c]=size(I);win_size = 7;img_size=w*h;dehaze=zeros(img_size*c,1);
这是关于“基于单幅图像的去雾算法研究”中matlab代码 ,特别是win_size =
img_name='imagel.jpg';
% 原始图像
I=double(imread(img_name))/255;
% 获取图像大小
[h,w,c]=size(I);
win_size = 7;
img_size=w*h;
dehaze=zeros(img_size*c,1);
dehaze=reshape(dehaze,h,w,c);
%figure,imshow(I);
win_dark=zeros(img_size ,1);
for cc=1:img_size
win_dark(cc)=1
end
win_dark=reshape(win_dark,h,w);
%计算分块darkchannel
for j=1+win_size:w-win_size
for i=win_size+1:h-win_size
m_pos_min = min(I(i,j,:));
for n=j-win_size:j+win_size
for m=i-win_size:i+win_size
if(win_dark(m,n)>m_pos_min)
win_dark(m,n)=m_pos_min;
end
end
end
end
end
figure,imshow(win_dark);
for cc=1:img_size
win_dark(cc)=1-win_dark(cc);
end
%选定精确dark value坐标
win_b = zeros(img_size,1);
for ci=1:h
for cj=1:w
if(rem(ci-8,15)
这是关于“基于单幅图像的去雾算法研究”中matlab代码 ,特别是win_size = img_name='imagel.jpg';% 原始图像I=double(imread(img_name))/255;% 获取图像大小[h,w,c]=size(I);win_size = 7;img_size=w*h;dehaze=zeros(img_size*c,1);
这是2009年香港中文大学学生何恺明发表在CPVR上的文章《Single Image Haze Removal Using Dark Channel Prior》的源代码,但应该不是他本人写的.
图像是由一个个像素点组成的,而文章中对像素点的操作是针对以这个像素点为中心、大小为15*15的矩形区域进行的,所以win_size=7.其实定义为多少都没关系,可能在他看来7效果更好.
至于其他的语句,建议你把这篇文章下载下来,看看,文章中讲述的去雾原理其实很简单,讲的也很清楚.但是这个源代码好像有些地方和他讲的不太一样,这不本质.