《数字图像处理上机》
实验报告
班级:电信 姓名:柳 学号:
1102 阳 0703110210
江南大学 物联网工程学院
数字图像处理上机实验
1、实验目的
了解matlab软件/语言,学会使用matlab的图像处理工具箱(Image Processing Toolbox),使学生初步具备使用该软件处理图像信息的能力,并能够利用该软件完成本课程规定的其他实验和作业。熟悉常用的图像文件格式与格式转换;熟悉图像矩阵的显示方法(灰度、索引、黑白、彩色);熟悉图像矩阵的格式转换。,学会使用MatLab对图像作滤波处理,使学生有机会掌握滤波算法,体会滤波效果。了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力.
2、实验要求
学生应当基本掌握matlab的操作,掌握matlab图像处理工具箱中最常用的函数用法。
练习图像读写命令imread和imwrite并进行图像文件格式之间的转换。学生应当完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;能够正确地评价处理的结果;能够从理论上作出合理的解释。
3、实验内容及步骤
1、图像的显示与格式转换
(1)学习matlab的基本操作; (2)使用imread函数读入图像; (3)使用figure函数创建窗口;
(4)使用image或imshow函数显示图像;
(5)使用colorbar函数在图像的右侧显示图像的亮度条。
2、图像的滤波
(1) 考察平均滤波器对高斯噪声污染的图象去噪效果 ; (2) 考察中值滤波器对高斯噪声污染的图象去噪效果; (3) 考察平均滤波器对椒盐噪声污染的图象去噪效果; (4) 考察中值滤波器对椒盐噪声污染的图象去噪效果。 (5) 考察滤波器模板大小对平均滤波器滤波效果的影响; (6) 考察滤波器模板大小对中值滤波器滤波效果的影响;
3、图像的频域变换
在Matlab workspace中生成一幅大小为256×256像素的8位灰度图, 背景为黑色,中心有一个宽80像素高40像素的白色矩形。对其做傅立叶变换,将该图像做30度旋转,再做傅立叶变换,查看两次频谱结果的差异。
4在Matlab环境中,首先读取自带的cameraman.tif图像,然后调用灰度均
1
江南大学 物联网工程学院
衡函数,设置相关参数,再输出处理后的图像。
4、实验结果记录 图像滤波
(1)使用“imread”函数读取图像然后用“imshow”函数显示图像 程序:a=imread('cameraman.tif'); subplot(3,3,1) imshow(a)
title('原始图像') 结果:
2
江南大学 物联网工程学院
(2)将图像变为二值图像并显示亮度条 程序:b=im2bw(a,graythresh(a)); Subplot(3,3,2) imshow(b)
title('二值图像') Colorbar 结果:
3
江南大学 物联网工程学院
(3)给图像加高斯噪声和椒盐噪声 程序:
c=imnoise(a,'gaussian',0.02); subplot(3,3,3) imshow(c)
title('加高斯噪声图像')
d=imnoise(a,'salt & pepper',0.02); subplot(3,3,4) imshow(d)
title('加椒盐噪声图像') 结果:
4
江南大学 物联网工程学院
(4)对加噪图像分别进行中值滤波和均值滤波 程序:
e=medfilt2(c,[2 2]); subplot(3,3,5) imshow(e)
title('对高斯噪声中值滤波') f=medfilt2(d); subplot(3,3,6) imshow(f)
title('对椒盐噪声中值滤波') 结果:
5
江南大学 物联网工程学院
g=filter2(fspecial('average',3),c)/255; subplot(3,3,7) imshow(g)
title('对高斯噪声均值滤波')
h=filter2(fspecial('average',3),d)/255; subplot(3,3,8) imshow(h)
title('对椒盐噪声均值滤波')
(5)改变均值滤波模版后两图对比
6
江南大学 物联网工程学院
后图模板由3改为2后滤波效果明显下降 (6)改变中值滤波模版后两图对比
后图为模板由2改为3后滤波效果明显提高
图像的频域变换
(1)对图像进行傅立叶变换 程序:
结果:A=zeros(256,256); for i=108:148 for j=88:168 A(i,j)=255; end end
B=uint8(A);
figure,imshow(B) F=fft2(B);
figure,imshow(F)
7
江南大学 物联网工程学院
程序:BR=imrotate(B,30);
FR=fft2(BR);
figure,imshow(BR) figure,imshow(FR) 结果:
灰度均衡函数
程序:
m=imread('cameraman.tif'); figure
imshow(m);
n=histeq(m,256); figure
8
江南大学 物联网工程学院
imshow(n)
结果:
5、实验思考题分析
(1)简述matlab软件特点
简单概括matlab软件的特点为:编程效率高,用户使用方便,扩充能力强,交互性好,移植性和开放性很好,语句简单,内涵丰富,高效方便的矩阵和数组运算,方便的绘图功能 。
(2)matlab软件可以支持哪些图像文件格式? Matlab支持14种图片格式分别为:JPEG、BMP、PCX、TIFF、PNG、GIF、HDF、ICO、CUR、XWD、RAS、PBM、PGM、PPM。
(3)说明函数imread的用途格式以及各种格式所得到的图像的性质。 imread的常见调用格式为: A = imread(filename,fmt)
其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m×n×3的三维矩阵。Filename表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。 imread的其他几种重要的调用格式为: [X,map] = imread(filename.fmt) [„] = imread(filename) [„] = imread(URL,„)
[„] = imread(„,idx) (CUR,ICO and TIFF only) [„] = imread(„,’frames’,idx) (GIF only)
9
江南大学 物联网工程学院
[„] = imread(„,ref) (HDF only)
[„] = imread(„,’BackgroundColor’,BG) (PNG only) [A,map,alpha] = imread(„) (ICO,CUR and PNG only)
上面一些参数的含义如下:idx是指读取图标(cur、ico、tiff)文件中第idx个图像,默认值为1。’frame’,idx是指读取gif文件中的图像帧,idx值可以是数量、向量或’all’。ref是指整数值。alpha是指透明度。
(4)结合实验内容,定性评价平均滤波器/中值滤波器对高斯噪声和椒盐噪声的去噪效果?
平均滤波对两种噪声去噪效果差不多,中值滤波对椒盐噪声去噪效果更好。
(5)结合实验内容,定性评价滤波窗口对去噪效果的影响。
就对于同一图像而言,滤波窗口M×M中其中M值越大图片越模糊同时去噪效果则越好。
10