subplot(2,2,2), imshow(I2); subplot(2,2,3), imshow(I3); subplot(2,2,4), imshow(I4);
图像显示:
在一个图形窗口中显示多幅图像 (4) 图像文件信息的查询
imfinfo函数用于查询图像文件的有关信息,详细地显示出图像文件的各种属性。其语法格式为:
info=imfinfo(‘filename’,‘fmt’)或info=imfinfo(‘filename.fmt’) 或imfinfo filename.fmt
imfinfo函数获取的图像文件信息依赖于文件类型的不同而不同,但至少应包 含以下内容:
文件名。如果该文件不在当前目录下,还包含该文件的完整路径。 文件格式。 文件格式的版本号。 文件最后一次修改的时间。 文件的大小。以字节为单位。 图像的宽度。 图像的高度。
每个像素所用的比特数。也叫像素深度。
图像类型。即该图像是真彩色图像、索引图像还是灰度图像。 源代码:
info=imfinfo('Couple.bmp') 显示结果:
info =
Filename: 'Couple.bmp'
FileModDate: '29-Apr-2009 10:11:48' FileSize: 66616 Format: 'bmp'
FormatVersion: 'Version 3 (Microsoft Windows 3.x)' Width: 256 Height: 256 BitDepth: 8
ColorType: 'indexed' FormatSignature: 'BM' NumColormapEntries: 256
Colormap: [256x3 double] RedMask: [] GreenMask: [] BlueMask: [] ImageDataOffset: 1078 BitmapHeaderSize: 40 NumPlanes: 1
CompressionType: 'none' BitmapSize: 0
HorzResolution: 2834 VertResolution: 2834 NumColorsUsed: 0 NumImportantColors: 0
六、实验步骤:
(1)利用imread函数完成对图像文件的读取操作。 (2)利用imwrite函数完成图像的写入(保存)操作。 (3)利用imshow函数显示图像。
(4)利用imfinfo函数查询图像文件的有关信息。
(二)图像平滑与滤波
一、实验题目:
图像平滑与滤波
二、实验目的:
在熟悉图像平滑的基本原理和方法的基础上,在理论指导下,能在MATLAB环境下对图像进行平滑处理。本实验要求用线性平滑滤波、中值平滑滤波、频域
低通滤波的方法进行程序设计。经过平滑处理,对结果图像加以比较,得出自己的实验结论。
三、实验内容:
(1)利用MATLAB为用户提供的专门函数实现均值滤波。 (2)利用MATLAB为用户提供的专门函数实现中值滤波。 (3)编写频域理想低通、巴特沃斯低通及高斯低通滤波函数。
四、预备知识:
(1)熟悉平滑滤波原理。 (2)熟悉频域滤波原理。
(3)熟悉在MATLAB环境下对图像文件的I/O操作。
五、实验原理:
平滑滤波技术用于平滑图像中的噪声。平滑噪声可以在空间域中进行,基本方法是求像素灰度的平均值或中值。也可以在频域中用基于傅立叶的分析方法进行。
这里对常用滤波函数进行简要介绍。 (1) 噪声产生函数:imnoise
图像平滑主要是针对图像的各种噪声而言的,因此需要模拟数字图像的各种噪声来分析滤波效果。MATLAB的图像处理工具箱提供了imnoise函数,可以用该函数给图像添加不同种类噪声,其调用格式为:
J = imnoise(I, ’type’, parameters)
I是输入图像,J是对I添加噪声后的输出图像。表5.1列出了imnoise函数能够产生的五种噪声及其对应参数。
表5.1 噪声种类及参数说明 TYPE gaussian localvar passion salt & pepper speckle PARAMETERS m,v v 无 d v 说明 均值为m,方差为v的高斯噪声。默认值m=0,v=0.01 均值为0,方差为v的高斯白噪声 泊松噪声 噪声强度为d的椒盐噪声。默认值为0.05 均值为0,方差为v的均匀分布随机噪声 源代码:
a)加入噪声强度为d=0.2的椒盐噪声:
I=imread('Couple.bmp');
J=imnoise(I,'salt & pepper',0.2);%给图像加入椒盐噪声 subplot(1,2,1);imshow(I);title('原始图像'); subplot(1,2,2);imshow(J);title('加入椒盐噪声的图像')
图像显示:
b)加入噪声强度为d=0.1的椒盐噪声:
I=imread('Couple.bmp');
J=imnoise(I,'salt & pepper',0.1);%给图像加入椒盐噪声 subplot(1,2,1);imshow(I);title('原始图像'); subplot(1,2,2);imshow(J);title('加入椒盐噪声的图像') 图像显示:
原始图像和加入椒盐噪声后的图像
c)加入均值m=0,方差v=150的高斯噪声:
I=imread('Couple.bmp');
J=imnoise(I,'gaussian',0 ,200);%给图像加入高斯噪声 subplot(1,2,1);imshow(I);title('原始图像'); subplot(1,2,2);imshow(J);title('加入高斯噪声图像') 图像显示:
d)加入均值m=0,方差v=300的高斯噪声:
I=imread('Couple.bmp');
J=imnoise(I,'gaussian',0 ,400);% 给图像加入高斯噪声 subplot(1,2,1);imshow(I);title('原始图像'); subplot(1,2,2);imshow(J);title('加入高斯噪声图像') 图像显示:
(2) 图像滤波函数:filter2、imfilter
空域滤波是在图像空间中借助模板对图像进行邻域操作,输出图像每一个像素的取值都是根据模板对输入像素相应邻域内的像素值进行计算得到的。模板运算的数学涵义是一种卷积(或互相关)运算。
MATLAB提供了基于卷积的图像滤波函数filter2进行平滑滤波,该函数用指定的滤波器模板对图像进行运算。其调用格式为:
B = filter2(h,A) B = filter2(h,A,shape)
其中B=filter2(h,A)返回图像A经算子h滤波后的结果,参数shape指定滤波