实验一图像处理基本操作_第1页
实验一图像处理基本操作_第2页
实验一图像处理基本操作_第3页
实验一图像处理基本操作_第4页
实验一图像处理基本操作_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一图像处理基本操作一、 实验目的1、熟悉并掌握在MATLAB中进行图像类型转换及图像处理的基本操作。2、熟练掌握图像处理中的常用数学变换。二、实验设备1、计算机1台2、MATLAB软件1套3、实验图片三、实验原理1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y,其中x和y是空间(平面坐标,f在坐标(x,y处的幅度称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由若干个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝组成的。因此,许多为黑白图像处理开发的技术也适用于彩色图像处理,方法是分别处理三幅独立的分量

2、图像即可。图像关于x和y坐标以及幅度连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和幅度。将坐标值数字化称为取样,将幅度数字化称为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和幅度都是有限且离散的量时,称该图像为数字图像。作为MATLAB基本数据类型的数组十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。图1 图像的采样和量化图1 采样和量化的过程根据图像数据矩阵解释方法的不同,MATLAB把其处理为4类:亮度图像(Intensity images二值图像(Binary images索引图像(Indexed images RGB图像(RGB images

3、(1 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类型或uint16类型,则它们的整数值范围分别是0,255和0,65536。若图像是double 类型,则像素取值就是浮点数。规定双精度double型归一化亮度图像的取值范围是0 1。(2 二值图像一幅二值图像是一个取值只有0和1的逻辑数组。而一幅取值只包含0和1的uint8类型数组,在MATLAB中并不认为是二值图像。使用logical函数可以把数值数组转化为逻辑数组。创建一个逻辑图像,其语法为:B=logical(A其中,A是由0和1构成的数值数组。(3 索引图像索引颜色通常也称为映射颜色,在这

4、种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。(4 RGB图像一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色像素点都是在特定空间位置的彩色图像相对应的红、绿、蓝三个分量。按照惯例,形成一幅RGB彩色图像的三个图像常称为红、绿和蓝分量图像。2、数据类型表1列出了MATLAB为表示像素所支持的各种数据类型。表中前8项称为数值数据类型,第9项称为字符类型,最后一项称为逻辑数据类型。表1 数

5、据类型名称描述double 双精度浮点数,范围:-10308 10308uint8 无符号8 bit整数,范围:0 255uint16 无符号16 bit整数,范围:0 65536uint32 无符号32 bit整数,范围:0 4294967295int8 有符号8 bit整数,范围:-128 127int16 有符号16 bit整数,范围:-32768 32767int32 有符号32 bit整数,范围:-2147483648 2147483647single 单精度浮点数,范围为:-10308 10308char 字符logical 值为0或13、图像文件的读、写和显示(1 读图像imre

6、ad函数用于读入各种图像文件,其一般的用法为X,MAP=imread( filename, fmt其中,X为读出的图像数据,MAP为颜色表数据(或称调色板,亦即颜色索引矩阵,对灰度图像和RGB彩色图像,该MAP为空矩阵,fmt为图像的格式(可以缺省,filename 为读取的图像文件(可以加上文件的路径。例:X,MAP=imread(flowers.tif, tif(2 写图像imwrite函数用于输出图像,其语法格式为:imwrite(X, MAP, filename, fmtimwrite(X, MAP, filename, fmt 按照fmt指定的格式将图像数据矩阵X和调色板MAP 写入

7、文件filename。(3 显示图像MATLAB图像处理工具箱提供了imshow函数来显示各种图像,其语法如下: imshow(I, n或imshow(I_BW;imshow(X, MAP;imshow(I_RGB其中imshow(I, n用于显示灰度图像,I是图像数据矩阵,n为灰度级数目(n可缺省,缺省值为256。其它的分别用于显示二值图像、索引色图像和RGB真彩色图像。另外,对RGB彩色图像,还可以用imshow( RGB(:, :, 1 、imshow( RGB(:, :, 2 、imshow( RGB(:, :, 3 分别显示RGB图像的R、G、B三个分量(注意:这样显示出的图像是以各

8、分量值为对应的灰度值所显示的灰度图像。需要显示多幅图像时,可以使用figure语句,它的功能就是打开一个新的图像显示窗口。也可以使用subplot函数将多幅图像显示在同一个图像显示窗口的不同区域位置。例:I=imread(rice.tif;imshow(I;J=imread(flowers.tif;figure, imshow(J;4、图像类型的转化图像的类型主要有二值图像、灰度图像、索引图像和RGB彩色图像。一幅图像的类型可以根据读入的图像数据的特点加以判断。假设图像“flowers.tif”的大小为N×M,读取图像X,MAP=imread(flowers.tif, tif。对灰度

9、图像来说:X为N×M矩阵、MAP为空矩阵;对索引图像:X为N×M矩阵,而MAP不是空矩阵,一般为256×3矩阵;对RGB图像:X为N×M×3三维矩阵,MAP为空矩阵。另外根据用imfinfo函数读取的图像文件的有关信息也可以确定图像的类型。图像类型之间的转换有时非常有用。表2是MATLAB提供的图像类型转换函数。表2 MATLAB提供的图像类型转换函数函数功能dither 使用抖动方法,将灰度图像变成二值图像或由RGB图像创建索引图像gray2ind 根据一幅灰度图像创建索引图像grayslice 使用阈值截取方法,根据一幅灰度图像创建索引图像

10、im2bw 使用阈值截取法,将灰度图像、索引图像或RGB图像转换为二值图像ind2gray 根据一幅索引图像创建一幅灰度图像ind2rgb 根据一幅索引图像创建一幅RGB图像mat2gray 通过数据缩放,在根据矩阵数据创建一幅灰度图像rgb2gray 根据一幅RGB图像创建一幅灰度图像rgb2ind 根据一幅RGB图像创建一幅索引图像上表中函数有类似的调用格式:函数的输入参数是图像数据矩阵(如果是索引图像,那么输入参数还包括调色板,返回值是转换后的图像(包括索引图像的调色板,只有函数im2bw的调用格式不同,其输入参数中还包括一个截取阈值,超过此阈值的像素被截取为1否则为0。如:“I_RGB

11、, MAP=imread('flowers.tif' I_GRAY=rgb2gray(I_RGB;”将RGB图像转换为灰度图像。5、代数运算设定A(x,y和B(x,y为输入图像,C(x,y为输出图像。(1 加法运算C ( x , y = A ( x , y + B ( x , y (2 减法运算C ( x , y = A ( x , y B ( x , y (3 乘法运算C ( x , y = A ( x , y ×B ( x , y (4 除法运算C ( x , y = A ( x , y / B ( x , y 图像相加的一个重要应用是对同一场景的多幅图像求平均值

12、。这点被经常用来有效地降低加性随机噪声的影响。在求平均值的过程中,图像的静止部分不会改变,而对每一幅图像,各不相同的噪声图案则累积很慢。对M幅图像进行平均,使图像中每一点的平方信噪比提高了M倍,幅度信噪比是功率信噪比的平方根,因此达到了提高信噪比降低噪声的作用。在MATLAB中,可人为地往一幅图像中加入随机噪声,并通过多次相加求平均的方法降低所加入的噪声对图像的影响。MATLAB中提供了给图像加入噪声的函数imnoise,imnoise的语法格式为J = imnoise(I, typeJ = imnoise(I, type, parameters其中J = imnoise(I, type返回对

13、原始图像I添加典型噪声的有噪图像J。参数type和parameters 用于确定噪声的类型和相应的参数。例:I = imread('eight.tif'J1 = imnoise(I, 'gaussian', 0, 0.02;J2 = imnoise(I, 'salt & pepper', 0.02;J3 = imnoise(I, 'speckle', 0.02;subplot(2,2,1, imshow(I, title('原图像'subplot(2,2,2, imshow(J1, title('加

14、高斯噪声'subplot(2,2,3, imshow(J2, title('加椒盐噪声'subplot(2,2,4, imshow(J3, title('加乘性噪声'代数运算中需要有若干幅带有随机噪声的图像数据,在这里我们运用MATLAB中的FOR循环语句来完成产生多幅带有噪声的图像数据及将这些图像数据进行相加运算。MATLAB中FOR END循环的用法如下:for end循环这种循环允许一组命令以固定的和预定的次数重复,循环的一般形式为: for variable = expressionstatementsend例:图像加噪声再通过多次相加求平均的方

15、法去除噪声I, M = imread('eight.tif'J = imnoise(I, 'gaussian', 0, 0.02;subplot(1,2,1, imshow(I, title('原图像'subplot(1,2,2, imshow(J, title('加噪声后图像'm, n = size(I;K = zeros(m, n;for i = 1 : 100J = imnoise(I, 'gaussian', 0, 0.02;J1 = im2double(J;K = K + J1;endK = K / 10

16、0; %求图像的平均figure; imshow(K, title('相加求平均后的图像' 6、几何运算 (1 图像的缩放 MATLAB 图像处理工具箱中的函数 imresize 可以用上述的三种方法对图像进行插值缩 放,如果不指定插值方法,则默认为最邻近插值法。 imresize 函数的语法格式为: B = imresize(A, m, method 上式返回原图像 A 的 m 倍放大的图像(m 小于 1 时效果是缩小) 。这里参数method用于指 定插值的方法,可选用的值为'nearest'(最邻近法) ,'bilinear'(双线性插值)

17、 ,'bicubic'(双三 次插值) ,默认为'nearest'。 例:I = imread('ic.tif' J = imresize(I, 1.25; imshow(I, title('原图像' figure,imshow(J, title('放大后的图像' (2 图像的旋转 在工具箱中的函数 imrotate 可用上述三种方法对图像进行插值旋转, 默认的插值方法也 是最邻近插值法。 imrotate 的语法格式为: B = imrotate(A, angle, method 函数 imrotate 对图像进

18、行旋转, 参数method用于指定插值的方法, 可选用的值为'nearest' (最邻近法) ,'bilinear'(双线性插值) ,'bicubic'(双三次插值) ,默认为'nearest'。一般说来 旋转后的图像会比原图大,超出原图部分值为 0。 例:I = imread('rice.tif' J = imrotate(I, 30, 'bilinear' imshow(I; title('原图像' figure, imshow(J; title('旋转后的图像'

19、 7、离散傅立叶变换 (1 fft2 fft2 函数用于计算二维快速傅立叶变换,其语法格式为: B = fft2(I B = fft2(I返回图像 I 的二维 fft 变换矩阵,输入图像 I 和输出图像 B 大小相同。 例如,计算图像的二维傅立叶变换,并显示其幅值的结果,其命令格式如下 load imdemos saturn2 figure; imshow(saturn2 B = fftshift(fft2(saturn2; figure; imshow(log(abs(B,'InitialMagnification','fit' 第6页 (2 fftshift

20、 MATLAB 提供的 fftshift 函数用于将变换后的图像频谱中心从矩阵的原点移到矩阵的中 心,其语法格式为: B = fftshift(I 对于矩阵 I,B = fftshift(I将 I 的一、三象限和二、四象限进行互换。 (3 ifft2 ifft2 函数用于计算图像的二维傅立叶反变换,其语法格式为: B = ifft2(I B = ifft2(I返回图像 I 的二维傅立叶反变换矩阵,输入图像 I 和输出图像 B 大小相同。 其语法格式含义与 fft2 函数的语法格式相同,可以参考 fft2 函数的说明。 例如,在上一个例子基础上进行二维傅立叶反变换 A=ifft2(ifftshift(B; figure;ims

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论