实验一 Matlab语言数字图象基本操作Word文档格式.docx
- 文档编号:2951196
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:8
- 大小:18.52KB
实验一 Matlab语言数字图象基本操作Word文档格式.docx
《实验一 Matlab语言数字图象基本操作Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验一 Matlab语言数字图象基本操作Word文档格式.docx(8页珍藏版)》请在冰点文库上搜索。
二维图像进行均匀采样,就可以得到一幅离散化成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=
4 5 6
插入:
通过对x进行插入运算创建矩阵A
>
A=[x-3;
x;
x+3] %当然也可以用别的方法产生A矩阵此处只作为示例
A=
1 2 3
4 5 6
7 8 9
提取:
提取A的前两行和后两列形成矩阵C。
C=A(1:
2,2:
3)
C=
2 3
5 6
置零:
将矩阵A的第二行第二列的元素置零
A(2,2)=0
1 2 3
4 0 6
7 8 9
将矩阵A的第一列全置1
A(:
1)=1
1 0 6
1 8 9
强调一下矩阵的乘法与矩阵的点乘的不同,举例说明:
A=eye
(2) %产生二维单位矩阵
1 0
0 1
B=[1,2;
3,4] %直接法输入矩阵
B=
1 2
3 4
A+B %求A与B的和(符合矩阵求和原则)
ans=
2 2
3 5
A.*B%求A与B的点积(即两矩阵中对应元素分别相乘
0 4
A*B%求A与B的乘积(符合矩阵乘积原则A的列数与B的行数相等)
3 4
注意:
请大家在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'
)
Filename:
'
C:
\MATLAB6p5\toolbox\images\imdemos\rice.tif'
FileModDate:
26-Oct-199606:
11:
58'
FileSize:
65966
Format:
tif'
FormatVersion:
[]
Width:
256
Height:
BitDepth:
8
ColorType:
grayscale'
FormatSignature:
[7373420]
ByteOrder:
little-endian'
NewSubfileType:
0
BitsPerSample:
Compression:
Uncompressed'
PhotometricInterpretation:
BlackIsZero'
StripOffsets:
[8x1double]
SamplesPerPixel:
1
RowsPerStrip:
32
StripByteCounts:
XResolution:
72
YResolution:
ResolutionUnit:
Inch'
Colormap:
PlanarConfiguration:
Chunky'
TileWidth:
TileLength:
TileOffsets:
TileByteCounts:
Orientation:
FillOrder:
GrayResponseUnit:
0.0100
MaxSamplev alue:
255
MinSamplev alue:
Thresholding:
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('
);
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]指定了变换后的灰度范围。
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]之间,并观察调整后的图象与原图象的差别,调整后的灰度直方图与原灰度直方图的区别。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验一 Matlab语言数字图象基本操作 实验 Matlab 语言 数字 图象 基本 操作
![提示](https://static.bingdoc.com/images/bang_tan.gif)