数字图像处理课程设计(图像去雾)
数字图像处理
课设题目:图像去雾
学院:信息与电气工程学院
专业:电子信息工程
班级:
姓名:
学号:
指导教师:
哈尔滨工业大学(威海)
年月日
目录
一. 课程设计任务 (4)
二. 课程设计原理及设计方案 (5)
三. 课程设计的步骤和结果 (7)
四. 课程设计总结 (9)
五. 设计体会 (10)
六. 参考文献 (11)
一. 课程设计任务
由于大气的散射作用,雾天的大气退化图像具有对比度低、景物不清晰的特点,给交通系统及户外视觉系统的应用带来严重的影响。
但由于成像系统聚焦模糊、拍摄场景存在相对运动以及雾天等不利环境,使得最终获取的图像往往无法使用。
为了解决这一问题,设计图像复原处理软件。
要求完成功能:
1、采用直方图均衡化方法增强雾天模糊图像,并比较增强前后的图像和
直方图;
2、查阅文献,分析雾天图像退化因素,设计一种图像复原方法,对比该
复原图像与原始图像以及直方图均衡化后的图像;
3、设计软件界面
二. 课程设计原理及设计方案
2.1 设计原理
在雾、霾等天气条件下, 大气中悬浮的大量微小水滴、气溶胶的散射作用导致捕获的图像严重降质,随着物体到成像设备的距离增大, 大气粒子的散射作用对成像的影响逐渐增加. 这种影响主要由两个散射过程造成: 1) 物体表面的反射光在到达成像设备的过程中, 由于大气粒子的散射而发生衰减;2) 自然光因大气粒子散射而进入成像设备参与成像. 它们的共同作用造成捕获的图像对比度、饱和度降低, 以及色调偏移, 不仅影响图像的视觉效果, 而且影响图像分析和理解的性能.
在计算机视觉领域中, 常用大气散射模型来描述雾、霾天气条件下场景的成像过程.Narasimhan 等给出雾、霾天气条件下单色大气散射模型(Monochrome atmospheric scat-tering model), 即窄波段摄像机所拍摄的图像灰度值可表示为
(1)
式中, x 为空间坐标, A 表示天
空亮度(Skylight), ρ为场景反照率, d 为场景的景深, β为大气反射系数。
图像去雾的过程就是根据获得的有降质的图像,即 I (x )来推算出ρ的过程。
但由于该物理模型包含3 个未知参数, 从本质上讲, 这是一个病态反问题.
在只有单幅图像的条件下,我们可以考虑用假设以及推算的方式使其中的几个量固定,然后求解。
2.2 设计方案
2.2.1 白平衡
WP (White point) 算法, 也称为Max-RGB 算法, 利用R 、G 、B 颜色分量的最大值来估计光照的颜色。
我们用天空亮度A 来取代最大值。
对于A ,如果直接用图像中最亮的灰度估计的话会受到高亮噪声或白色物体的干扰,因此我们首先对图像颜色分量进行最小滤波,然后选择阀值为0.99,大于此值的认定为天空区域,然后取平均值为我们估计的天空亮度A 。
然后方程(1)变为
(2)
2.2.2 估计大气耗散函数
)1()(d e A d e A x I ββρ--+-=d e d e A I β
βρ--+-=1/
为了简化(2),我们设则 d e X V β--=1)( (2)变为
(3)
V (x )称为大气
耗散函数。
根据(3)容易发现V (x )满足0<V(x)<I',如果对
I ’进行最小滤波得到W (x ),则V (x )也必定满足0<V(x)<W(x)。
求V (x )的过程其实是滤波的过程,分为三步:
其中p 为恢复系数,去[0,1]中的值(一般为0.9—0.95)。
2.2.3 场景反射率的恢复
通过以上步骤我们获得了A 以及V (x ),至此方程(1)仅含有一个未知量,即我们要求的场景反射率
2.2.4 色调映射
映射关系为其中G 为求的去雾后的图像灰度最大值。
2.2.5 与直方图去雾效果对比
使用matlab 中的histeq 函数对图像的亮度和对比度进行直方图均衡化处理
)())(1(/'x V x V A I I +-==ρ)
0),,max(min()
()
(W pB V A W median A B W median A =--==)
1/()'(V V I --=ρ)
)/11(1/(ρρG T -+=
三. 课程设计的步骤和结果
3.1原图像与直方图
global im;
global orig;
[filename, pathname]=uigetfile(['*.jpg'],'insert image'); im=[pathname filename];
orig = imread(im);
Q = rgb2gray(orig);
figure;
subplot(1, 2, 1); imshow(orig); title('原图像') subplot(1, 2, 2); imhist(Q, 64); title('原图像直方图')
3.2原图像与均衡后图像
global orig;
global U;
I = rgb2hsv(orig);
H = I(:,:,1);
S = I(:,:,2);
V = I(:,:,3);
M = histeq(S); % 对饱和度直方图均衡化
N = histeq(V); % 对亮度直方图均衡化
U = hsv2rgb(H, M, N);
figure;
subplot(2, 2, 1); imshow(orig); title('原图像')
subplot(2, 2, 2); imshow(U); title('均衡后图像')
Q = rgb2gray(orig);
W = rgb2gray(U);
subplot(2, 2, 3); imhist(Q, 64); title('原图像直方图') subplot(2, 2, 4); imhist(W, 64); title('均衡变换后的直方图')
3.3原图与去雾图像对比
global im;
im1=double(imread(im))/255.0;
sv=2*floor(max(size(im1))/25)+1;
res=visibresto1(im1,sv,0.95,-1);
figure;imshow([im1, res],[0,1]);
四. 课程设计总结
首先,由于本方法是基于单幅图像输入来进行去雾处理,因此无法像多幅图像条件下那样综合同一场景的不同降质条件来估算天空亮度,因此难免会存在偏差。
而且白平衡过程是对整幅图像进行的,这样对于简单场景(天空与景物有明显的分界)来说误差较小,但对于存在很多细节的图像(如茂盛的树木,天空也景物难以区分)以及场景中有很多白色景物时,会在边缘出现模糊。
其次,本方法使用的是变形的中值滤波器来估算大气耗散函数,而中值滤波器虽然能较好的保持边缘,但对于直角以及线这样的细节的处理存在固有缺陷,因此当场景中存在这样的景物(如高楼、车辆等),处理后的图像会在景物的边缘出现明显的模糊。
五. 设计体会
在本次课程设计过程中,收获颇丰。
首先,这次实践让我又重新温习了一遍数字图像处理课程的相关知识,并在此过程中对所学知识进行了一次检验,加深了度数字图像处理这门课程的理解,让我深感数字图像处理这门课程的博大精深。
然后,通过本次课程设计的体验,提高了综合运用数字图像处理各方面知识的能力,并从中发现了自己的许多不足之处,有待提高。
最后,通过对matlab这个工具软件的运用,我又掌握了它的一些功能,这对我以后的学习和工作是一个莫大的帮助。
六. 参考文献
[1]数字图像处理(第二版)冈萨雷斯电子工业出版社
[2]基于物理模型的单幅图像快速去雾方法禹晶、李大鹏、廖庆敏自动化学报
[3]Fast Visibility Restoration from a Single Color or Gray Level Image Jean-Philippe Tarel、Nicolas Hautiere IEEE
课程设计成绩评定表
课程设计总评分成绩表
附:实验用图。