图像去雾(一般)

news/2024/11/8 0:32:38/

转自: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])

上几张图把, 感觉我的这个实现效果不大好......

zhuan:关于cvpr2009的best paper图像去雾及其另一matlab实现  - drj08 - 无敌小Q

原图

zhuan:关于cvpr2009的best paper图像去雾及其另一matlab实现  - drj08 - 无敌小Q

增强后的图, 简直是"水变油"...囧

0

0

0

minfilt2在这里

http://www.mathworks.com/matlabcentral/fileexchange/1358


http://www.ppmy.cn/news/332445.html

相关文章

案例分享-智慧景区智能管控系统

01建设需求 随着旅游业的发展和人民生活水平的提高,人们对旅游 的体验感、安全性越来越重视,对景区的安全管理与运营管理提出了更高的要求! “智慧景区”的概念为景区的服务、管理、营销提供了信息化的解决思路 02建设目标 以信息化打造…

基于Python旅游景区景点售票系统设计与实现 开题报告

本科生毕业论文 基于Python景区景点购票系统(Django框架) 开题报告 学 院: 专 业: 计算机科学与技术 年 级: 学生姓名: 指导教师&am…

温州地图高清版全图完整版

温州地图高清版 全图完整版 软件大小:237KB 软件语言:简体中文 软件类别:图像浏览 软件授权:官方版 更新时间:2015-01-05 应用平台:/Win8/Win7/WinXP 温州地图高清版完整了介绍了温州市区的建筑道路效能分布…

景区手绘地图的绘制流程

接上文《景区手绘地图(电子地图、智慧导览系统)如何制作》,这里再来说说具体的制作流程。 手绘地图的绘制,是一个相当专业的工作。遵循一些科学的规范,可以有效避免很多无用的、返工的、错误的工作。 根据我的经验&a…

嵌入式开发之设置寄存器中指定位

0 Preface/Foreword 嵌入式开发,位操作是常用的运算,读写对应寄存器指定位从而设置不同的功能。 1 设置寄存器中的任意位 1.1 清零 举例,假设一个寄存器名字为FUNCCON,地址为0x00008000,该寄存器长度为4个byte。 #define FUNC…

经验总结:13 条自动化测试框架设计原则!

1.代码规范 测试框架随着业务推进,必然会涉及代码的二次开发,所以代码编写应符合通用规范,代码命名符合业界标准,并且代码层次清晰。特别在大型项目、多人协作型项目中,如果代码没有良好的规范,那么整个框…

3.1 掌握RDD的创建

一、RDD为何物 (一)RDD概念 Spark提供了一种对数据的核心抽象,称为弹性分布式数据集(Resilient Distributed Dataset,RDD)。这个数据集的全部或部分可以缓存在内存中,并且可以在多次计算时重用。…

笔记本通过hdmi连接显示器分辨率设置

1、右键显示设置中 多显示器设置选择 仅在2上显示 ——>