MATLAB数字图像去雾处理系统

一、课题实现的功能

由于大气的散射作用,雾天的大气退化图像具有对比度低、景物不清晰的特点,给交通系统及户外视觉系统的应用带来严重的影响。但由于成像系统聚焦模糊、拍摄场景存在相对运动以及雾天等不利环境,使得最终获取的图像往往无法使用。为了解决这一问题,设计图像复原处理软件。

二、设计方案

设计原理

在雾、霾等天气条件下, 大气中悬浮的大量微小水滴、气溶胶的散射作用导致捕获的图像严重降质,随着物体到成像设备的距离增大, 大气粒子的散射作用对成像的影响逐渐增加. 这种影响主要由两个散射过程造成: 1) 物体表面的反射光在到达成像设备的过程中, 由于大气粒子的散射而发生衰减;2) 自然光因大气粒子散射而进入成像设备参与成像. 它们的共同作用造成捕获的图像对比度、饱和度降低, 以及色调偏移, 不仅影响图像的视觉效果, 而且影响图像分析和理解的性能.

在计算机视觉领域中, 常用大气散射模型来描述雾、霾天气条件下场景的成像过程.Narasimhan 等给出雾、霾天气条件下单色大气散射模型(Monochrome atmospheric scat-tering model), 即窄波段摄像机所拍摄的图像灰度值可表示为

MATLAB数字图像去雾处理系统_第1张图片

式中, x 为空间坐标, A 表示天空亮度(Skylight), ρ为场景反照率, d 为场景的景深, β为大气反射系数。图像去雾的过程就是根据获得的有降质的图像,即

I(x)来推算出ρ的过程。

但由于该物理模型包含3 个未知参数, 从本质上讲, 这是一个病态反问题.

在只有单幅图像的条件下,我们可以考虑用假设以及推算的方式使其中的几个量固定,然后求解。

设计方案

白平衡

WP (White point) 算法, 也称为Max-RGB 算法, 利用R、G、B 颜色分量的最大值来估计光照的颜色。我们用天空亮度A来取代最大值。对于A,如果直接用图像中最亮的灰度估计的话会受到高亮噪声或白色物体的干扰,因此我们首先对图像颜色分量进行最小滤波,然后选择阀值为,大于此值的认定为天空区域,然后取平均值为我们估计的天空亮度A。然后方程(1)变为

MATLAB数字图像去雾处理系统_第2张图片


估计大气耗散函数

MATLAB数字图像去雾处理系统_第3张图片

三、设计的步骤和结果

原图像与直方图

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('原图像直方图')


MATLAB数字图像去雾处理系统_第4张图片


原图像与均衡后图像

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('均衡变换后的直方图')


MATLAB数字图像去雾处理系统_第5张图片


原图与去雾图像对比

global im; 
im1=double(imread(im))/;
sv=2*floor(max(size(im1))/25)+1;
res=visibresto1(im1,sv,,-1);
figure;imshow([im1, res],[0,1]);


MATLAB数字图像去雾处理系统_第6张图片




MATLAB数字图像去雾处理系统_第7张图片

你可能感兴趣的:(算法,计算机视觉,opencv,机器学习,java)