转自:http://blog.csdn.net/sjzcandy/article/details/5810700(原创地址不详)
正文:
zhuan:关于cvpr2009的best paper图像去雾及其另一matlab实现
这篇论文是讲风景图片去雾的, 主要特点是方法简单, 而效果却不错
在作者主页那里有论文原文, 还有一个ppt不错:
http://personal.ie.cuhk.edu.hk/~hkm007/cvpr09/cvpr09slides.pdf
看完ppt,我写过一个简单的matlab实现, 其中的soft matting优化没写, 谁有兴趣写一个共享一下哈..
贴代码吧, 很简单滴..., 如有理解上的错误和bug, 欢迎指正..
clear
clc
close all
kenlRatio = .01;
image_name = '18.jpg';
img=imread(image_name);
sz=size(img);
w=sz(2);
h=sz(1);
dc = zeros(h,w);
for y=1:h
for x=1:w
dc(y,x) = min(img(y,x,:));
end
end
figure, title('src')
imshow(uint8(img))
figure, title('Min(R,G,B)')
imshow(uint8(dc))
krnlsz = floor(max([3, w*kenlRatio, h*kenlRatio]))
dc2 = minfilt2(dc, [krnlsz,krnlsz]);
dc2(h,w)=0;
figure, title('After filter ')
imshow(uint8(dc2))
t = 255 - dc2;
figure, title('t')
imshow(uint8(t))
t_d=double(t)/255;
A = min([240, max(max(dc2))])
J = zeros(h,w,3);
img_d = double(img);
J(:,:,1) = (img_d(:,:,1) - (1-t_d)*A)./t_d;
J(:,:,2) = (img_d(:,:,2) - (1-t_d)*A)./t_d;
J(:,:,3) = (img_d(:,:,3) - (1-t_d)*A)./t_d;
figure, title('J')
imshow(uint8(J))
imwrite(uint8(J), ['_', image_name])
上几张图把, 感觉我的这个实现效果不大好......
原图
增强后的图, 简直是"水变油"...囧
0
0
0
minfilt2在这里
http://www.mathworks.com/matlabcentral/fileexchange/1358