MATLAB数字图像处理基础实验.docx

上传人:b****2 文档编号:611411 上传时间:2022-10-11 格式:DOCX 页数:20 大小:29.88KB
下载 相关 举报
MATLAB数字图像处理基础实验.docx_第1页
第1页 / 共20页
MATLAB数字图像处理基础实验.docx_第2页
第2页 / 共20页
MATLAB数字图像处理基础实验.docx_第3页
第3页 / 共20页
MATLAB数字图像处理基础实验.docx_第4页
第4页 / 共20页
MATLAB数字图像处理基础实验.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

MATLAB数字图像处理基础实验.docx

《MATLAB数字图像处理基础实验.docx》由会员分享,可在线阅读,更多相关《MATLAB数字图像处理基础实验.docx(20页珍藏版)》请在冰豆网上搜索。

MATLAB数字图像处理基础实验.docx

MATLAB数字图像处理基础实验

MATLAB数字图像处理基础实验(转)

一、实验目的

1、复习MATLAB语言的基本用法;

2、掌握MATLAB语言中图象数据与信息的读取方法;

3、掌握在MATLAB中绘制灰度直方图的方法,了解灰度直方图的均衡化的方法。

二、实验原理

MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。

作为强大的科学计算平台,它几乎能够满足所有的计算需求。

MATLAB软件具有很强的开放性和适用性。

在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox。

目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。

在实验中我们主要用到MATLAB提供图象处理工具箱(ImageProcessingToolbox)。

1、MATLAB与数字图像处理

MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。

实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。

这一特点也就决定了MATLAB在处理数字图像上的独特优势。

理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。

二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。

而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。

MATLAB对图像的处理功能主要集中在它的图像处理工具箱(ImageProcessingToolbox)中。

图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

2、MATLAB语言的基本操作

MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。

针对数字图象处理的需要,可以重点掌握以下几个内容:

矩阵、向量的输入和操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等)

以下主要介绍一下如何读取矩阵的指定行或指定列,举例说明:

x=4:

6%产生一个一维数组,范围从4到6,步长为1

x=

456

插入:

通过对x进行插入运算创建矩阵A

>>A=[x-3;x;x+3]%当然也可以用别的方法产生A矩阵此处只作为示例

A=

123

456

789

提取:

提取A的前两行和后两列形成矩阵C。

>>C=A(1:

2,2:

3

C=

23

56

置零:

将矩阵A的第二行第二列的元素置零

>>A(2,2=0

A=

123

406

789

将矩阵A的第一列全置1

A(:

1=1

A=

123

106

189

强调一下矩阵的乘法与矩阵的点乘的不同,举例说明:

A=eye(2%产生二维单位矩阵

A=

10

01

>>B=[1,2;3,4]%直接法输入矩阵

B=

12

34

>>A+B%求A与B的和(符合矩阵求和原则)

ans=

22

35

>>A.*B%求A与B的点积(即两矩阵中对应元素分别相乘

ans=

10

04

>>A*B%求A与B的乘积(符合矩阵乘积原则A的列数与B的行数相等)

ans=

12

34

注意:

请大家在E盘建一个目录(imp),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----SetPath----Tool---AddPath

3、MATLAB中图象数据的读取

A、imread

imread函数用于读入各种图象文件,其一般的用法为

[X,MAP]=imread(„filename‟,„fmt‟

其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。

例:

[X,MAP]=imread(‟flowers.tif‟,‟tif‟);

B、imwrite

imwrite函数用于输出图象,其语法格式为:

imwrite(X,map,filename,fmt按照fmt指定的格式将图象数据矩阵X和调色板map写入文件filename。

C、imfinfo

imfinfo函数用于读取图象文件的有关信息,其语法格式为

imfinfo(filename,fmt

imfinfo函数返回一个结构info,它反映了该图象的各方面信息,其主要数据包括:

文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图象的类型等。

例:

imfinfo('rice.tif'

ans=

Filename:

'C:

/MATLAB6p5/toolbox/images/imdemos/rice.tif'FileModDate:

'26-Oct-199606:

11:

58'

FileSize:

65966

Format:

'tif'

FormatVersion:

[]

Width:

256

Height:

256

BitDepth:

8

ColorType:

'grayscale'

FormatSignature:

[7373420]

ByteOrder:

'little-endian'

NewSubfileType:

0

BitsPerSample:

8

Compression:

'Uncompressed'

PhotometricInterpretation:

'BlackIsZero'

StripOffsets:

[8x1double]

SamplesPerPixel:

1

RowsPerStrip:

32

StripByteCounts:

[8x1double]

XResolution:

72

YResolution:

72

ResolutionUnit:

'Inch'

Colormap:

[]

PlanarConfiguration:

'Chunky'

TileWidth:

[]

TileLength:

[]

TileOffsets:

[]

TileByteCounts:

[]

Orientation:

1

FillOrder:

1

GrayResponseUnit:

0.0100

MaxSamplevalue:

255

MinSamplevalue:

0

Thresholding:

1

ImageDescription:

[1x166char]

4、MATLAB中图象文件的显示

imshow

imshow函数是最常用的显示各种图象的函数,其语法如下:

imshow(X,map

其中X是图象数据矩阵,map是其对应的颜色矩阵,若进行图象处理后不知道图象数据的值域可以用[]代替map。

需要显示多幅图象时,可以使用figure语句,它的功能就是重新打开一个图象显示窗口。

例:

I=imread(„rice.tif‟;

Imshow(I;

J=imread(„flowers.tif‟;

figure,imshow(J;

5、MATLAB中灰度直方图的显示

MATLAB图象处理工具箱提供了imhist函数来计算和显示图象的直方图,imhist函数的语法格式为:

imhist(I,n

imhist(X,map

其中imhist(I,n计算和显示灰度图象I的直方图,n为指定的灰度级数目,默认值为256。

imhist(X,map计算和显示索引色图象X的直方图,map为调色板。

例:

I=imread('rice.tif';

imshow(I

figure,imhist(I

6、对比度增强

如果原图象f(x,y的灰度范围是[m,M],我们希望调整后的图象g(x,y的灰度范围是[n,N],那么下述变换,,就可以实现这一要求。

MATLAB图象处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度增强。

Imadjust函数的语法格式为:

J=imadjust(I,[low_inhigh_in],[low_outhigh_out]

J=imadjust(I,[low_inhigh_in],[low_outhigh_out]返回图象I经过直方图调整后的图象J,[low_inhigh_in]为原图象中要变换的灰度范围,[low_outhigh_out]指定了变换后的灰度范围。

例:

I=imread('pout.tif';

J=imadjust(I,[0.30.7],[];

imshow(I,figure,imshow(J

三、实验要求

copy两个图形文件girl1.bmp和girl2.bmp到MATLAB目录下work文件夹中。

1、将MATLAB目录下work文件夹中的girl.bmp图象文件读出.用到imread,imfinfo等文件,观察一下图象数据,了解一下数字图象在MATLAB中的处理就是处理一个矩阵。

将这个图象显示出来(用imshow),尝试修改map颜色矩阵的值,再将图象显示出来,观察图象颜色的变化。

2、将MATLAB目录下work文件夹中的girl2.bmp图象文件读出,显示它的图象及灰度直方图,可以发现其灰度值集中在一段区域,用imadjust函数将它的灰度值调整到[0,1]之间,并观察调整后的图象与原图象的差别,调整后的灰度直方图与原灰度直方图的区别。

实验二图像运算

本实验是综合性实验,涵盖Matlab程序设计、图像点运算、代数运算、几何运算等多章基本知识及其应用。

需四个学时。

一、实验目的与要求

λ理解图像点运算、代数运算、几何运算的基本定义和常见方法;

λ掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法;

λ掌握在MATLAB中进行插值的方法

λ运用MATLAB语言进行图像的插值缩放和插值旋转

λ进一步熟悉了解MATLAB语言的应用。

二、实验原理与功能

点运算是通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换.可以表示为B(x,y=f(A(x,y.进行逐点运算,输入映射为输出,不改变图像像素的空间关系.

代数运算是指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的运算。

对于相加和相乘的情形,可能不止有两幅图像参加运算。

在一般情况下,输入情况之一可能为常数。

四种图像处理代数运算的数学表达式如下:

C(x,y=A(x,y+B(x,y

C(x,y=A(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1