MATLAB数字图像处理练习四

一,题目

一、利用拉普拉斯滤波器进行锐化处理
1.实验内容
分别用MATLAB自带的拉普拉斯滤波器以及手工指定的拉普拉斯滤波器来对MATLAB自带的“moon.tif”图像进行锐化处理。
2.实验原理
增强问题常常需要工具箱外的滤波器。拉普拉斯算子就是一个很好的例子。工具箱提供了一个大小为33的拉普拉斯滤波器,其中心为-4。通常,若希望得到更加清晰的图像,则需要使用中心为-8、其它值均为1的33等改进的拉普拉斯滤波器。本实验的目的是用手工的方法实现这个滤波器,并比较使用两种拉普拉斯方式的结果。

二、图像复原
实验内容:
1.对一幅图像实现匀速运动模糊。然后,利用维纳滤波实现图像复原。
2.对一幅图像实现匀速运动模糊,并添加噪声。然后,利用逆滤波、维纳滤波以及最小二乘滤波实现图像复原,并对比三种滤波方法的滤波特点及效果。

三、图像去雾
伴随着人类工业化进程的不断推进,空气污染也越来越严重,特别是雾霾天气在一年中所占的比例也在逐年上升。雾霾天气往往会给人类的生产和生活带来极大不便,也大大增加了交通事故发生的概率。一般而言,在恶劣天气(如雾天、雨天等)条件下,户外景物图像的对比度和颜色也会被改变或退化,图像中所蕴含的许多特征也会被覆盖或模糊,这也会导致某些视觉系统(如电子卡口、门禁监控等)无法正常工作。因此,从雾霾天气所采集的退化图像中复原和增强景物细节信息具有重要的意义。数值图像处理技术已广泛应用于科学和工程领域,如地形分类系统、户外监控系统、自动导航系统等,为了保证视觉系统全天候正常工作,就必须使系统适应各种天气状况。
请对雾天拍摄的图1进行一定的图像处理,使其重新变得清晰。

MATLAB数字图像处理练习四_第1张图片

二,解答

问题一

clc
clear
I=imread('moon.tif');
I=im2double(I);%将其转化为[0,1]的double类型,即不用再除以255了
h1=fspecial('laplacian',0);%拉普拉斯算子高通滤波,高通即锐化
J1=imfilter(I,h1);
I1=I-J1;
h2=[1 1 1;1 -8 1; 1 1 1];
J2=imfilter(I,h2);
I2=I-J2;
figure(1)
subplot(231);imshow(I);title('原始图像')
subplot(232);imshow(J1);title('matlab自带拉普拉斯算子高通滤波')
subplot(233);imshow(I1);title('处理后图像')
subplot(234);imshow(I);title('原始图像')
subplot(235);imshow(J2);title('自创拉普拉斯算子高通滤波')
subplot(236);imshow(I2);title('处理后图像')

MATLAB数字图像处理练习四_第2张图片

问题二

clc
clear
I=im2double(rgb2gray(imread('Tulips.jpg')));
imshow(I)
%对一幅图像实现匀速运动模糊,并添加噪声。然后,利用逆滤波、维纳滤波以及最小二乘滤波
%实现图像复原,并对比三种滤波方法的滤波特点及效果。
PSF=fspecial('motion',60,30);%运动模糊模板
J1=imfilter(I,PSF,'circular','conv');
imshow(J1)
noise=imnoise(zeros(size(I)),'gaussian',0,0.001);
J2=imadd(J1,noise);
imshow(J2)

MATLAB数字图像处理练习四_第3张图片

%%
%逆滤波
I1=deconvwnr(J2,PSF);%逆滤波不能处理有噪声的图像,故I1图像不能还原
imshow(I1);
%%
%维纳滤波
NSR=sum(noise(:).^2)/sum(I(:).^2);
I2=deconvwnr(J2,PSF,NSR);
imshow(I2);
%%
%最小二乘滤波
I3=deconvreg(J2,PSF,100);
imshow(I3)

MATLAB数字图像处理练习四_第4张图片

问题三

由于代码太长,这里不展示代码,展示处理后的图片
代码可自取:
链接:https://pan.baidu.com/s/1J-TUencIXf_QjNZJfq9l9A
提取码:sxqy

1)全局直方图算法

MATLAB数字图像处理练习四_第5张图片

2)局部直方图算法

MATLAB数字图像处理练习四_第6张图片

3)Retinex算法

MATLAB数字图像处理练习四_第7张图片

三,一些小知识点

01

uint8(I) % 将图像变成8位的256灰度级的图像。
f=im2double(f); % 将图像变成双精度类型;

你可能感兴趣的:(数字图像处理练习,matlab,图像处理,计算机视觉)