资源描述
图像处理实验报告——图像增强
———————————————————————————————— 作者:
———————————————————————————————— 日期:
12
个人收集整理 勿做商业用途
实
验
报
告
学生姓名: 刘德涛
学 号:2010051060021
指导老师: 彭真明
日 期:2013年3月31日
一、 实验室名称:
光电楼329、老计算机楼309机房
二、 实验项目名称:
图像增强
三、 实验原理:
图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像.图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。空间域的增强主要有:灰度变换和图像的空间滤波.
1. 灰度变换
灰度变换主要有线性拉伸、非线性拉伸等。
灰度图像的线性拉伸是将输入图像的灰度值的动态范围按线性关系公式拉伸到指定范围或整个动态范围。令原图像的灰度变化范围为,线性变换后图像的范围为,线性拉伸的公式为:
灰度图像的非线性拉伸采用的数学函数是非线性的.非线性拉伸不是对图像的灰度值进行扩展,而是有选择地对某一灰度范围进行扩展,其他范围的灰度值则可能被压缩。常用的非线性变换:对数变换和指数变换.
对数变换的一般形式:
指数变换的一般形式:
(用于调整曲线的位置和形状的参数。)
2. 图像的空间滤波
图像的空间滤波主要有图像的空域平滑和锐化。
图像的平滑是一种消除噪声的重要手段。图像平滑的低频分量进行增强,同时抑制高频噪声,空域中主要的方法有领域平均、中值滤波、多帧相加平均等方法。
图像锐化能使图像的边缘、轮廓处的灰度具有突变特性。图像的锐化主要有微分运算的锐化,包括梯度法和拉普拉斯法算子。
四、 实验目的:
1. 熟悉和掌握利用Matlab工具进行数字图像的读、写、显示等数字图像处理
基本步骤。
2. 熟练掌握各种空间域图像增强的基本原理及方法。
3. 了解光电图像的基本噪声和噪声模型;了解数字图像空间域平滑滤波和锐
化滤波器的作用
4. 掌握利用Matlab工具编程实现数字图像增强处理和滤波处理的各种方法。
五、 实验内容:
(一)数字图像的线性灰度变换
(二) 图像的非线性灰度变换
(三) 光电图像的空域平滑处理
(四) 光电图像的空域高通滤波
六、 实验器材:
计算机、matlab软件
七、 实验步骤:
(一)数字图像的线性灰度变换
1)读取一幅灰度图像,并显示。
2)实现图像的灰度范围由[a,b]到[c,d]的线性拉伸,以便于提升原图像的对比度。线性灰度变换公式如下:
(1)
其中,f(x,y)为原始图像,灰度范围为[a,b],g(x,y)为增强后的数字图像,灰度范围为[c,d]。注:实验中[a,b]可由实际图像来确定,[c,d]可视具体情况人为给定。
3) 显示经过线性灰度变换后的图像,并对变换结果进行必要的分析,画出灰度变换曲线图。
4)以另一个文件名形式保存灰度变换后的图像。
(二)图像的非线性灰度变换(指数变换)
1)读取一幅灰度图像并显示。
2)分别对其进行对数变换。即
对数变换:
(2)
3)显示增强后的图像,并利用Matlab画出指数或对数变换曲线。
4)以另一个文件名形式保存增强后的图像。
(三)图像的非线性灰度变换(中值滤波)
1)读取一幅含有椒盐噪声的灰度图像并显示。
2)编程实现对输入图像的中值滤波处理。
3)显示去除噪声后的处理结果.要求在同一窗口中显示原始图像及中值滤波的结果。
(四)光电图像的空域平滑处理
1)读取一幅灰度图像并显示。
2)对原始图像加噪声。
3)设计一个空间域的的高斯滤波器H1
试画出滤波器空间域3D图形,由于H1的尺寸较小,可以用适当放大的方式显示。
4)分别采用进行卷积和滤波两种方式,对第二步中加噪声图像进行平滑处理,对滤波结果进行分析,并分别画出滤波结果图。
(五) 光电图像的空域高通滤波
1) 读取一幅灰度图像并显示。
2) 根据课堂上所学的知识,自行设计一个空间域的高斯滤波模板Hh。并画出该滤波器的3D图形。
3) 分别采用进行卷积和滤波两种方式,对第1步中图像进行滤波处理,对滤波结果进行必要分析,并分别画出滤波结果图。
八、 实验数据及结果分析:
输出结果图像见附件1。
对比原图和线性变换图像,可知线性变换图像对比度得到了增强,主要是由于程序中将图像的灰度由[50,180]变换到了[15,230],整体灰度得到了拉伸.
对比原图和对数变换图像,可知原图的高亮度成分对比度得到了增强,低亮度成分对比度减弱了,分析对数变换曲线可知,在高亮度部分,曲线斜率大于1,灰度得到了拉伸,低亮度部分曲线斜率小于1,灰度被压缩。
对比原图和中值滤波两图像,可知,中值滤波可以有效地去除椒盐噪声,主要是椒盐噪声部分亮度值最大或最小,取中值可以去除极值灰度.
对比原图、含噪图、卷积处理图像和滤波函数处理的函数,图像平滑具有滤除高斯噪声能力,而且对于相同的算子,用卷积和滤波函数处理的效果在视觉上观察是一样的,主要是因为采用的算子是对称的,相对于原图,去噪图像的边缘变得模糊,主要是加权平均处理带来的负面效果。
对比原图、两幅锐化图像,锐化图像为图像的变化较大的轮廓,主要是由于图像变化较大时,相邻像素灰度减得到的数比较大,所以得到较大的灰度值,变化较小的部分相减,得到的数值较小,所以最终得到锐化的图像。两幅锐化图像有所差异,主要是由于算子不是对称的,由于两个函数处理的方式不一样,得到效果有所差异.
九、 实验结论:
对图像的像素灰度进行线性和非线性拉伸变换,可以得到不同对比度变换,线性变换可以对全局的灰度均匀拉伸,但是非线性拉伸变换对不同的灰度范围有不同的拉伸或压缩效果。
对被椒盐噪声污染的图像,通过中值滤波可以很好地滤除噪声,且可以很好地保护图像的清晰度。
对图像进行平滑处理,可以处理高斯噪声,但是很带来图像的边缘细节模糊。对于具有对称特性的算子,conv2和imfilter处理的图像效果是一样的,非对称的算子,处理的效果一般不样.
对图像进行锐化处理,会得到图像的边缘部分,变化小部分对应的灰度值较小。
十、 总结及心得体会:
总结:通过本次的图像增强实验了解了图像的最基本的像素级的操作,对图像的变换有了一定的了解,同时增加了自己对数字图像的了解。
心得体会:一些看起来很简单的图像处理,要自己编程进行实现比不是一件很简单的事,所以对于理论要多加以实践才能更好地掌握。
十一、 对本实验过程及方法、手段的改进意见:
如果对现有的某些简单的函数进行限制使用,要求学生自己编写,可以很大程度的增强学生的编程能力。
报 告 评 分 :
指导教师签字:
附件:
1. 实验处理结果图像:
(1) 数字图像的线性灰度变换
图1 线性拉伸变换原图和结果图
图2 线性拉伸变换灰度变换曲线
(2) 图像的非线性灰度变换(指数变换)
图3 指数拉伸变换原图和结果图
图4 对数拉伸变换灰度变换曲线
(3) 图像的非线性灰度变换(中值滤波)
图5 中值滤波原图和结果图
(4) 光电图像的空域平滑处理
图6 平滑处理原图、加噪图和结果图
图7 算子的3D图
(5) 光电图像的空域高通滤波
图8 平滑处理原图、加噪图和结果图
图9 算子的3D图
2. 实验程序:
(1) 数字图像的线性灰度变换
%拉伸到15到230
clc,close all,clear all;
remax=230;remin=15;
y=imread(’cloud_24bitgry。jpg’);
y=rgb2gray(y);
subplot(1,2,1),imshow(y);
y=double(y);
title('原始图像');
ymax=max(max(y));
ymin=min(min(y));
[a,b]=size(y);
%灰度变换程序
for m=1:a;
for n=1:b;
result_image(m,n)=(remax-remin)/(ymax—ymin)*(y(m,n)—ymin)+remin;
end
end
result_image=uint8(result_image);
subplot(1,2,2),imshow(result_image);
imwrite(result_image,'灰度线性变换.jpg',’jpg');%保存图像
title('灰度变换图像');
o=[]
for x=1:255;
if x〈ymin;
k=remin;
elseif x>ymax;
k=remax;
else
k=(remax-remin)/(ymax-ymin)*(x-ymin)+remin;
end
o=[o,k];
end
%画变换曲线图
x=1:255;
figure,plot(x,o);title('灰度变换曲线’);
xlabel('f(x,y)’),ylabel('g(x,y)');
(2) 图像的非线性灰度变换(指数变换)
%灰度对数变换
clc,close all,clear all;
imb=1。56;ima=13;imc=0。05;
y=imread(’Einstein.jpg');
y=rgb2gray(y);
subplot(1,2,1),imshow(y);title('原始图像');
y=double(y);
[a,b]=size(y);
%对数变换程序
for m=1:a;
for n=1:b;
result_image(m,n)=imb^(imc*(y(m,n)—ima))-1;
end
end
subplot(1,2,2),imshow(result_image,[]);title(’变换图像');
imwrite(uint8(result_image),'灰度对数变换。jpg',’jpg');%保存图像
u=[];
for x=0:255;
o=imb^(imc*(x-ima))-1;
u=[u,o];
end
x=0:255;
figure(),plot(x,u);title('对数变换曲线');
xlabel(’f(x,y)’),ylabel(’g(x,y)');
(3) 图像的非线性灰度变换(中值滤波)
%灰度对数变换
clc,close all,clear all;
imb=1。56;ima=13;imc=0。05;
y=imread(’lowlight_spn24。jpg’);
y=rgb2gray(y);
subplot(1,2,1),imshow(y);title(’原始图像’);
[a,b]=size(y);
%中值滤波变换程序
o=y;
for m=2:a-1;
for n=2:b—1;
O=[y(m—1,n—1),y(m,n-1),y(m+1,n-1),y(m-1,n),y(m,n),y(m+1,n),y(m—1,n+1),y(m,n+1),y(m+1,n+1)];
o(m,n)=median(O);
end
end
subplot(1,2,2),imshow(o);title('滤波图像');
(4) 光电图像的空域平滑处理
%平滑去噪
clc,close all,clear all;
y=imread(’Einstein。jpg');
y=rgb2gray(y);
subplot(2,2,1),imshow(y),title(’原始图像’);
y=imnoise(y,'gauss’,0。002);%加噪声
subplot(2,2,2),imshow(y);title('加噪图像’);
y=double(y);
h1=1/273*[1,4,7,4,7;
4,16,26,16,4;
7,26,41,26,7;
4,16,26,16,4;
1,4,7,4,1];
M=conv2(y,h1);%卷积处理图像
subplot(2,2,3),imshow(uint8(M));title('卷积去噪图像');
M=imfilter(y,h1);
subplot(2,2,4),imshow(uint8(M));title('函数去噪图像’);
x=-9:10;
y=-9:10;
h1=imresize(h1,4,'bilinear');
[X,Y]=meshgrid(x,y);
figure,surfc(X,Y,h1);
(5) 光电图像的空域高通滤波
% 图像锐化程序
clc,close all,clear all;
y=imread(’Einstein。jpg');
y=rgb2gray(y);
subplot(1,3,1),imshow(y),title(’原始图像');
y=double(y);
h1=[—1,0,1;
-1,0,1;
-1,0,1];
sum(sum(h1))
M=conv2(y,h1);%卷积处理图像
subplot(1,3,2),imshow(uint8(M));title(’卷积锐化图像’);
M=imfilter(y,h1);
subplot(1,3,3),imshow(uint8(M));title('图像锐化图像');
x=-5:6;
y=—5:6;
h1=imresize(h1,4,'bilinear');
[X,Y]=meshgrid(x,y);
figure,surfc(X,Y,h1);
展开阅读全文