MATLAB图像处理工具箱.pptx
- 文档编号:18831703
- 上传时间:2023-12-23
- 格式:PPTX
- 页数:74
- 大小:5MB
MATLAB图像处理工具箱.pptx
《MATLAB图像处理工具箱.pptx》由会员分享,可在线阅读,更多相关《MATLAB图像处理工具箱.pptx(74页珍藏版)》请在冰点文库上搜索。
第4章图像灰度变换,Matlab对图像的处理功能主要集中在它的图像处理工具箱(ImageProcessingToolbox)中。
图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、数学形态学处理等图像处理操作。
图像处理工具箱主要有:
ImageAcquisitionToolbox(图像采集工具箱)ImageProcessingToolbox(图像处理工具箱)SignalProcessingToolbox(信号处理工具箱)WaveletToolbox(小波分析工具箱)StatisticsToolbox(统计工具箱)BioinformaticsToolbox(生物信息学工具箱),4.1MATLAB图像处理程序的特点,上手容易,开发周期短,见效快。
程序代码编写量明显较小有专门的图像处理工具箱MATLAB程序不能脱离MATLAB平台而独立存在,4.2图像处理工具箱的图像类型,图像处理工具箱支持4种图像类型,它们是:
真彩色图像(RGBimages)索引色图像(indeximages)灰度图像(intensityimages)二值图像(binaryimages)Matlab还支持由多帧图像组成的图像序列,真彩色图像,真彩色图像用R、G、B3个分量表示1个像素的颜色,数据结构是一个mn3的多维数组。
如果读取图像中(100,50)处像素值,可以查看三元组(100,50,1:
3)。
真彩色图像可用双精度存储,亮度值范围是0,1常用存储方法是无符号整型存储,亮度值范围为0,255,图1真彩色图像的结构,真彩色图像数据格式,RGB图像的表示方法-三幅分量图像合成,索引色图像,索引图像是把像素值作为RGB调色板下标的图像。
索引色图像包含2个结构,一个是调色板map;另一个是图像数据矩阵X。
调色板是一个有3列和若干行的色彩映像矩阵,矩阵每行代表一种色彩,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定颜色。
图像数据是uint8或是双精度的。
Matlab中调色板的色彩强度是0,1中的浮点数,0代表最暗,1代表最亮。
图2索引色图像的结构,索引图像的数据格式,索引图像的double与uint8型,double,uint8,图像数据,调色板,索引图像的表示方法,读入一幅索引图像的语句如下:
X,map=imread(trees.tif);显示一幅索引图像,可使用语句:
imshow(X,map)或者:
image(X)%用系统当前的颜色表显示索引图像colormap(map)%将系统当前颜色表设置为map,举例:
X,map=imread(trees.tif);image(X)其效果等同于:
imshow(X,colormap),举例:
X,map=imread(trees.tif);image(X)colormap(map);其效果等同于:
imshow(X,map),MATLAB提供了一些预定义的彩色表,imshow(X,hsv),imshow(X,autumn),imshow(X,copper),imshow(X,gray(64),灰度图像,存储灰度图像只需要一个数据矩阵,数据类型可以是double也可以是uint8。
存储时会使用一个默认的调色板来显示图像。
二值图像,与灰度图像相同,二值图像只需一个数据矩阵,每个像素只有2个灰度值。
可以采用uint8或double类型存储,工具箱中以二值图像作为返回结果的函数都使用uint8类型。
图像序列,图像处理工具箱支持将多帧图像连接成图像序列。
使用cat函数将分散图像合并成图像序列,前提是各图像尺寸必须相同。
将A1、A2、A3、A4、A5五幅图像合并成一个图像序列A,Matlab语句为A=cat(1,A1,A2,A3,A4,A5),1维,纵向排列A=cat(2,A1,A2,A3,A4,A5),2维,横向排列A=cat(3,A1,A2,A3,A4,A5),3维,竖向排列,图像序列也可以产生一个四维数组,图像帧的序号在图像的长、宽、颜色后构成第四维。
一个包含了5幅400300真彩色图像的序列,大小为40030035一个包含了5幅400300灰度或是索引图像的序列,其大小为40030015A=cat(4,A1,A2,A3,A4,A5),4维提取其中一帧(如第2帧):
A(:
:
:
2),4.3Matlab图像类型转换,索引图像,灰度图像,真彩图像,二值图像,数据矩阵,1.dither函数,功能:
图像抖动把RGB图像转换成索引图像把灰度图像转换成二值图像。
格式:
X=dither(RGB,map)BW=dither(I),
(1)RGB图像抖动成索引图像,I=imread(autumn.tif);map=pink(1024);X=dither(I,map);imshow(I);figure,imshow(X,map);colorbar,
(2)灰度图像抖动成二值图像,I=imread(rice.png);bw=dither(I);imshow(I);figure,imshow(bw);,2.gray2ind函数,功能:
将灰度图像转换成索引图像。
格式:
X,map=gray2ind(I,n)n的缺省值为64。
I=imread(cameraman.tif);X,map=gray2ind(I,16);subplot(121),imshow(I);subplot(122),imshow(X,map);,3.grayslice函数,功能:
通过设定阈值将灰度图像转换成索引色图像。
格式:
X=grayslice(I,n)I=imread(cameraman.tif);X=grayslice(I,16);imshow(I);figure,imshow(X,bone(16);,功能:
将灰度图像、索引色图像和真彩色图像转化成二值图像。
格式:
BW=im2bw(I,level)BW=im2bw(X,map,level)BW=im2bw(RGB,level)level是一个归一化阈值,取值在0,1。
4.im2bw函数,I=imread(autumn.tif);X=im2bw(I,0.5);imshow(I);figure,imshow(X);,功能:
将索引图像转换成灰度图像。
格式:
I=ind2gray(X,map),5.ind2gray函数,功能:
将索引色图像转换成真彩色图像。
格式:
RGB=ind2rgb(X,map)例:
I,map=imread(m83.tif);X=ind2rgb(I,map);imshow(I,map);figure,imshow(X);,6.ind2rgb函数,功能:
将一个数据矩阵转换成一幅灰度图像。
格式:
I=mat2gray(A),7.mat2gray函数,I=imread(rice.png);J=filter2(fspecial(sobel),I);K=mat2gray(J);figure,imshow(I),figure,imshow(K),功能:
将一幅真彩色图像转换成灰度图像。
格式:
I=rgb2gray(RGB)例:
RGB=imread(autumn.tif);X=rgb2gray(RGB);imshow(RGB);figure,imshow(X);,8.rgb2gray函数,转换效果图,功能:
将真彩色图像转换成索引色图像。
格式:
X,map=rgb2ind(RGB,n)例:
RGB=imread(autumn.tif);X,map=rgb2ind(RGB,128)imshow(RGB);figure,imshow(X,map);,9.rgb2ind函数,4.4图像文件的读写和查询,imread:
读取图形文件格式的图像;imwrite:
写入图形文件格式的图像;imfinfo:
获取图像的信息;loadsave:
以Mat文件加载或保存矩阵数据;imshow:
显示加载到Matlab中的图像。
函数imread可完成图形图像文件的读取操作,其语法如下一般:
A=imread(filename,fmt)索引图像:
X,map=imread(filename,fmt),X,map=imread(m83.tif,tif),1图形图像文件的读取,imdata=imread(ngc6543a.jpg);image(imdata),imread函数可以从图形文件中以特定位宽读取图像。
读取的大多数图像均为8bit。
加载到内存中时,就存储在类uint8中。
对于索引图像来说,即使图像阵列的本身为uint8或uint16,imread函数仍然将颜色映像表读取并存储到一个双精度的浮点类型阵列中。
2图形图像文件的写入(保存),imwrite函数可以完成图形图像文件的写入操作,其语法为:
imwrite(A,filename,fmt)imwrite(X,map,filename,fmt)缺省的保存方式:
uint8数据格式。
Matlab中许多图像都是8bit,不需要双精度的浮点数据。
imwrite(X,map,lena.bmp,bmp),A=imread(onion.png);B=A(50:
100,100:
150,:
);imwrite(B,onion-part.png)C=imread(onion-part.png);subplot(1,2,1)image(A);axisimage;title(全部)subplot(1,2,2)image(C);axisimage;title(部分),3图形图像文件信息的查询,imfinfo函数用于从图像文件中查询其信息。
所获取信息依文件类型不同而不同,至少包含下面内容文件名文件格式文件格式的版本号文件修改时间文件的字节大小图像的宽度(像素)图像的长度(像素)每个像素的位数图像类型(RGB图像、灰度图像还是索引图像),imfinfo(autumn.tif),info=Filename:
1x64charFileModDate:
01-十月-199616:
19:
44FileSize:
27387Format:
jpgFormatVersion:
Width:
600Height:
650BitDepth:
24ColorType:
truecolorFormatSignature:
NumberOfSamples:
3CodingMethod:
HuffmanCodingProcess:
SequentialComment:
1x69char,4图像文件的显示,图像显示函数imshow。
其语法格式如下灰度图像imshow(I)imshow(I,n)imshow(I,lowhigh)二值图像imshow(BW)索引图像imshow(X,map)真彩色图像imshow(RGB),其中n为灰度级数目,缺省值为256。
lowhigh为图像数据的值域。
索引图像及其显示,索引图像包括数据矩阵X和颜色映像矩阵map。
其中map是一个p3的数据矩阵,其每个元素的值均为0,1之间双精度浮点型数据。
map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。
而数据矩阵X可以是double和uint8型的,调用格式如下:
imshow(X,map),例如一幅包含256色的uint8索引图像,使用一个仅有16色的调色板显示,则所有数值大于或等于15的像素都将被显示为调色板的最后一个颜色。
借助不同的调色板显示图像,X=imread(cameraman.tif);map=pink(256);imshow(X,map);colorbar;%显示颜色条,灰度图像及其显示,一幅灰度图像是一个数据矩阵I,其中数据均代表了在一定范围内的颜色灰度值。
Matlab把灰度图像用数据矩阵的形式进行存储,每个元素则表示了图像中的每个像素。
矩阵元素可以是doudle、uint8整数类型。
多数情况下,灰度图像很少和颜色映像表一起保存,但在显示灰度图像时,Matlab仍然在后台使用系统预定义的缺省灰度颜色映像表。
(1)灰度图像显示最基本的调用格式imshow(I)Matlab中imshow函数使用一个灰度级系统调色板(R=G=B)来显示灰度图像。
如果I是double型,若像素值为0.0,则显示为黑色,1.0则显示为白色,0.0和1.0之间的像素值将显示为灰影。
imshow函数显示灰度图像,
(2)使用明确指定的灰度级数目imshow(I,n)以下语句将显示一幅32个灰度级的图像I。
imshow(I,32)(3)某些情况下,可能将一些超出数据惯例范围的数据显示为一幅灰度图像,对于double型数组为0,1,对于uint8型数组为0,255,为了将超过数据范围的数据显示为图像,用户可以直接定义数据范围,其调用格式如下,imshow(I,lowhigh)其中low、high分别为数据的最小和最大值。
如果用户使用一个空矩阵指定数据范围,imshow将自动进行数据标度。
RGB图像及其显示,imshow函数显示RGB图像的调用格式如下,imshow(RGB)参数RGB是mn3的数组。
imshow显示数值(r,c,13)所描述颜色像素(r,c)。
每个屏幕像素使用24位颜色系统直接显示真彩图像,系统给每个像素的红、绿、蓝颜色分量分配8位(256级),这样就有1000多万种颜色(224)。
二值图像及其显示,显示二值图像用如下语句,imshow(BW)二值图像是一个逻辑类,包括0和1两个数值,像素0显示为黑色,像素1显示为白色。
通过NOT()命令可对二进制图像取反,数值0显示为白色,1显示为黑色。
例:
BW=imread(circles.png);imshow(BW);figure,imshow(BW);,二值图像显示效果,直接从磁盘显示图像,通常在显示图像前首先调用imread函数装载图像,将数据存储为Matlab工作平台中的变量。
如果不在显示图像前装载图像,则使用以下命令格式进行图像文件显示,imshowfilename,imshowrice.pngimshow(rice.png),多幅图像文件的显示,创建新的图像窗口,每个图像显示在一个窗口中figure,imshow功能:
新建一个图像窗口,用于显示新图像(从而不让新的图像覆盖原来图像)。
调用imshow函数显示图像I=imread(rice.png)J=filter2(12;-1-2,I)%用模板12;-1-2对图像滤波imshow(I)figure,imshow(J,),用imshow显示滤波前后的图像,subplot(m,n,k),imshow%绘制并显示m行n列第k个子图例:
X1=imread(rice.png);X2=imread(coins.png);X3=imread(bag.png);subplot(1,3,1),imshow(X1);subplot(1,3,2),imshow(X2);subplot(1,3,3),imshow(X3);,子图显示,loadtreesX2,map2=imread(forest.tif);subplot(1,2,1),subimage(X,map)subplot(1,2,2),subimage(X2,map2),多图显示,montage函数,可用于显示某一文件夹下某一格式的所有图像文件,组成一个四维矩阵,并显示在一个图像框中。
语法格式如下montage(I)montage(D,map),例loadmrimontage(D,map),1)immovie以动画方式显示各帧图像,既将各帧图片转换为matlab动画格式;只能用索引图像;mov=immovie(X,map)2)movie播放已记录的影片;movie(M,n,fps)M待播放的数据矩阵;n影片的播放次数,默认为1;fps影片的播放速度,既每秒播放的图片帧数,默认为12帧/秒;,多帧图像的电影片段,mri=uint8(zeros(128,128,1,27);forframe=1:
27mri(:
:
:
frame),map=imread(mri.tif,frame);endmov=immovie(mri,map);movie(mov);,将mri.tif的每一帧读入图相应的图像帧中,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图像 处理 工具箱