数字图像处理Matlab图像处理工具箱PPT资料.ppt
《数字图像处理Matlab图像处理工具箱PPT资料.ppt》由会员分享,可在线阅读,更多相关《数字图像处理Matlab图像处理工具箱PPT资料.ppt(36页珍藏版)》请在冰豆网上搜索。
,系统中全部程序和帮助文件的管理和启动功能。
Matlab简介-开发环境,Matlab简介-M文件,Matlab通常使用命令驱动方式,当单行命令输入时,Matlab立即处理并显示结果,同时将运行说明和命令存入历史命令窗口。
Matlab语句的磁盘文件称作M文件,因为这些文件名的末尾是.M形式。
M文件有两种类型:
命令(Script)文件函数(function)文件,2.1MATLAB基础语法,2.1.1变量名的命名规则1.必须以字母开头,后可跟字母,数字和下划线2.区分大小写3.不超过31个字符,Matlab常用命令,clear工作空间中清除所有变量,clc清除命令窗口中显示内容,help获得在线帮助,命令功能,clf清除图形窗口内容,who列出当前工作空间中的变量,whos列出当前工作空间中的变量及信息,2.2Matlab常用的基本命令,
(1)全0矩阵A=zeros(n):
生成nn的全0矩阵;
A=zeros(m,n):
生成mn的全0矩阵;
A=zeros(a1,a2,a3,):
生成a1a2a3的全0矩A=zeros(size(B):
生成与矩阵B大小相同的全0矩阵。
1.常用矩阵的生成,
(2)全1矩阵A=ones(n):
生成nn的全1矩阵;
A=ones(m,n):
生成mn的全1矩阵;
A=ones(a1,a2,a3,):
生成a1a2a3的全1矩阵;
A=onse(size(B):
生成与矩阵B大小相同的全1矩阵。
(3)单位矩阵A=eye(n):
生成nn的单位矩阵;
A=eye(m,n):
生成mn的单位矩阵;
A=eye(size(B):
生成与矩阵B大小相同的单位矩阵。
(4)均匀分布的随机矩阵A=rand(n):
生成nn的随机矩阵;
A=rand(m,n):
生成mn的随机矩阵;
A=rand(a1,a2,a3,):
生成a1a2a3的随机矩阵;
A=rand(size(B):
生成与矩阵B大小相同的随机矩阵。
*x=12345%产生15的数组*b=x(3)%寻访数组x的第3个元素*b=x(125)%寻访x的第1、2、5元素*b=x(1:
3)%寻访前三个元素*b=x(3:
end)%寻访第三个元素到最后一个*b=x(find(x3)%由大于3的元素构成数组*b=x(3:
-1:
1)%由前3个数倒排成数组*b=x(12344321)%对元素的重复访问,2.寻访矩阵中的数据,*x=1,2,3;
4,5,6;
7,8,9%产生33的矩阵*b=x(find(x4)%大于4的元素构成数组*x(2,2)=10%第2行第2列值改为10*x(3,:
)=20%第3行的值改为20*x=ones(5)%产生55全为1的矩阵*x(2:
4,2:
4)=0%第2、3、4行的第2、3、4列元素改0,3.修改数据,A=3:
6;
1:
4%产生24的矩阵s=size(A)%返回s为行数列数r,c=size(A)%返回r为行数,c为列数r=size(A,1)%只返回行数c=size(A,2)%只返回列数n=length(A)%返回行数、列数最大者,5.矩阵的规模,2.3图像处理工具箱简介,Matlab是一种基于向量(数组)而不是标量的高级程序语言,因而Matlab从本质上就提供了对图像的支持。
数字图像实际上是一组有序离散的数据,使用Matlab可以对这些离散数据形成的矩阵进行一次性的处理。
Matlab对图像的处理功能主要集中在它的图像处理工具箱(ImageProcessingToolbox)中。
图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、数学形态学处理等图像处理操作。
图像处理工具箱主要有:
ImageAcquisitionToolboxImageProcessingToolboxSignalProcessingToolboxWaveletToolboxStatisticsToolboxBioinformaticsToolboxMatlabCompilerMatlabCOMbuilder,2.4Matlab中的图像类型及类型转换,Matlab中的数字图像是由一个或多个矩阵表示的,Matlab强大的矩阵运算功能完全可以应用于图像,那些适用于矩阵运算的语法对Matlab中的数字图像同样适用。
2.4.1图像和图像数据,缺省:
double(64位浮点数)uint8(无符号8位整型),2.4.2图像处理工具箱所支持的图像类型,图像处理工具箱支持4种图像类型,它们是:
真彩色图像(RGBimages)索引色图像(indeximages)灰度图像(intensityimages)二值图像(binaryimages)此外,Matlab还支持由多帧图像组成的图像序列。
2.4.4图像文件的显示,Matlab7.0图像处理工具箱提供了一个高级的图像显示函数imshow。
其语法格式如下,灰度图像imshow(I)imshow(I,n)imshow(I,lowhigh),其中n为灰度级数目,缺省值为256。
lowhigh为图像数据的值域。
2.灰度图像及其显示,一幅灰度图像是一个数据矩阵I,其中数据均代表了在一定范围内的颜色灰度值。
Matlab把灰度图像用数据矩阵的形式进行存储,每个元素则表示了图像中的每个像素。
矩阵元素可以是doudle、uint8整数类型。
多数情况下,灰度图像很少和颜色映像表一起保存,但在显示灰度图像时,Matlab仍然在后台使用系统预定义的缺省灰度颜色映像表。
(1)灰度图像显示最基本的调用格式imshow(I)Matlab中imshow函数使用一个灰度级系统调色板(R=G=B)来显示灰度图像。
如果I是double型,若像素值为0.0,则显示为黑色,1.0则显示为白色,0.0和1.0之间的像素值将显示为灰影。
imshow函数显示灰度图像,imshow(I,n)例如:
以下语句将显示一幅32个灰度级的图像I。
imshow(I,32),
(2)使用明确指定的灰度级数目,(3)某些情况下,可能将一些超出数据惯例范围的数据显示为一幅灰度图像,对于double型数组为0,1,对于uint8型数组为0,255,为了将超过数据范围的数据显示为图像,用户可以直接定义数据范围,其调用格式如下,imshow(I,lowhigh)其中low、high分别为数据的最小和最大值。
如果用户使用一个空矩阵指定数据范围,imshow将自动进行数据标度。
补充:
多幅图像文件的显示,figure,imshow功能:
新建一个图像窗口,用于显示新图像(从而不让新的图像覆盖原来图像)。
1.创建新的图像窗口,每个图像显示在一个窗口中,调用imshow函数显示图像,如下页图所示。
I=imread(rice.png);
J=filter2(12;
-1-2,I);
%用模板12;
-1-2对图像滤波imshow(I)figure,imshow(J,),思考:
如果没有figure的话,将产生什么结果?
用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),2.用子图、多个图像显示在一个图像窗口中,子图显示效果,图像的运算,imadd(X,Y);
Y可以是另一幅图像,也可以是一个常数。
例1:
J=imread(cameraman.tif);
K=imadd(I,J);
subplot(1,3,1),imshow(I);
subplot(1,3,2),imshow(J);
subplot(1,3,3),imshow(K),图像的加法,例2:
实现亮度的增加RGB=imread(greens.jpg);
RGB1=imadd(RGB,50);
subplot(1,2,1);
imshow(RGB);
subplot(1,2,2);
imshow(RGB1);
图像的减法,Z=imsubtract(X,Y);
计算X与Y的像素之差,负数将被截取为0。
Z=imabsdiff(X,Y);
计算X与Y的像素之差的绝对值,结果为非负的。
图像的空间变换,将输入图像的像素映射到输出图像的新位置,如调整图像大小、旋转、剪切等。
调整图像的大小-imresize,Y=imresize(X,M);
其中M1表示放大,0M1表示缩小。
Y=imresize(X,MN);
产生一个指定的MN大小的图像Y。
图像的旋转-imrotate,Y=imrotate(X,angle,method);
Y=imrotate(X,angle,method,crop);
其中angle为逆时针旋转的角度,method为插值方法,指定crop参数对旋转后的图像进行剪切。
例:
I=imread(lena.bmp);
J1=imrotate(I,45);
J2=imrotate(I,45,crop);
subplot(1,3,2),imshow(J1);
subplot(1,3,3),imshow(J2);