《计算机仿真Lecture-6:Matlab医学图像处理》由会员分享,可在线阅读,更多相关《计算机仿真Lecture-6:Matlab医学图像处理(32页珍藏版)》请在金锄头文库上搜索。
1、计算机仿真计算机仿真Lecture 6:MatlabMatlab图像处理补充图像处理补充6.1 图像运算图像运算主要内容主要内容一、图像运算的基本形式一、图像运算的基本形式 1 1、点运算、点运算 2 2、领域运算、领域运算 3 3、并行运算、并行运算 4 4、串行运算、串行运算 5 5、迭代运算、迭代运算 6 6、窗口运算、窗口运算 7 7、模板运算、模板运算 8 8、帧运算、帧运算二、图像的点运算二、图像的点运算三、图像的代数运算三、图像的代数运算四、图像的几何运算四、图像的几何运算 1 1、概述、概述 2 2、象素坐标系统、象素坐标系统 3 3、空间坐标系统、空间坐标系统 4 4、灰度级
2、插值、灰度级插值 5 5、简单的空间变换、简单的空间变换五、仿射变换五、仿射变换6.1.1 图像运算的基本形式图像运算的基本形式顺向扫描顺向扫描顺向扫描顺向扫描 逆向扫描逆向扫描逆向扫描逆向扫描1 1 1 1、点运算、点运算、点运算、点运算在对图像各象素进行处理时,只输入该象素本身灰度的运算称为点运算。在对图像各象素进行处理时,只输入该象素本身灰度的运算称为点运算。 2 2 2 2、领域运算、领域运算、领域运算、领域运算在在在在对图对图像各象素像各象素像各象素像各象素进进行行行行处处理理理理时时,不,不,不,不仅输仅输入入入入该该象素本身的灰度,象素本身的灰度,象素本身的灰度,象素本身的灰度,
3、还还要要要要输输入以入以入以入以该该象象象象素素素素为为中心的某些局部区域中的一些象素的灰度中心的某些局部区域中的一些象素的灰度中心的某些局部区域中的一些象素的灰度中心的某些局部区域中的一些象素的灰度进进行运算的方式叫行运算的方式叫行运算的方式叫行运算的方式叫领领域运算。域运算。域运算。域运算。3 3 3 3、并行运算、并行运算、并行运算、并行运算并行运算指的是并行运算指的是并行运算指的是并行运算指的是对图对图像上各象素同像上各象素同像上各象素同像上各象素同时进时进行相同行相同行相同行相同处处理的运算方式。理的运算方式。理的运算方式。理的运算方式。点运算由于各象素的点运算由于各象素的点运算由于
4、各象素的点运算由于各象素的处处理与其他象素无关,因理与其他象素无关,因理与其他象素无关,因理与其他象素无关,因为为不不不不论论采用采用采用采用顺顺向向向向扫扫描描描描还还是逆向是逆向是逆向是逆向扫扫描,描,描,描,结结果是一果是一果是一果是一样样的,所以点运算可以采用并行运算。的,所以点运算可以采用并行运算。的,所以点运算可以采用并行运算。的,所以点运算可以采用并行运算。对对于于于于领领域运算,上域运算,上域运算,上域运算,上图图可以采用并行运算。下可以采用并行运算。下可以采用并行运算。下可以采用并行运算。下图处图处理用到前理用到前理用到前理用到前处处理的理的理的理的结结果,果,果,果,所以不
5、能采用并行所以不能采用并行所以不能采用并行所以不能采用并行处处理方式。理方式。理方式。理方式。4 4、串行运算、串行运算、串行运算、串行运算指按照顺序对逐个象素进行处理的方式。上图即是。指按照顺序对逐个象素进行处理的方式。上图即是。指按照顺序对逐个象素进行处理的方式。上图即是。指按照顺序对逐个象素进行处理的方式。上图即是。5 5、迭代运算、迭代运算、迭代运算、迭代运算反复多次进行相同处理的运算,称为迭代运算。反复多次进行相同处理的运算,称为迭代运算。反复多次进行相同处理的运算,称为迭代运算。反复多次进行相同处理的运算,称为迭代运算。6 6、窗口运算、窗口运算、窗口运算、窗口运算为减少运算时间,
6、常对图像的某一部分进行的运算叫窗口运算。为减少运算时间,常对图像的某一部分进行的运算叫窗口运算。为减少运算时间,常对图像的某一部分进行的运算叫窗口运算。为减少运算时间,常对图像的某一部分进行的运算叫窗口运算。7 7 7 7、模板运算、模板运算、模板运算、模板运算对特定形状的区域进行某种运算方式叫模板运算。对特定形状的区域进行某种运算方式叫模板运算。对特定形状的区域进行某种运算方式叫模板运算。对特定形状的区域进行某种运算方式叫模板运算。8 8 帧帧运算运算运算运算在两幅或多幅图像之间产生的运算叫帧运算。在两幅或多幅图像之间产生的运算叫帧运算。在两幅或多幅图像之间产生的运算叫帧运算。在两幅或多幅图
7、像之间产生的运算叫帧运算。6.1.2 图像的点运算图像的点运算1 1、概述、概述点运算也称为对比度增强和拉伸、灰度变换,是一种通过对图像中的每点运算也称为对比度增强和拉伸、灰度变换,是一种通过对图像中的每个像素值进行计算,从而改善图像显示效果的操作。点运算常用于改变个像素值进行计算,从而改善图像显示效果的操作。点运算常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。在真正图像的灰度范围及分布,是图像数字化及图像显示的重要工具。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。点运算是像素的逐点运
8、算,它将输入图像映射为输出图像,输出图像每点运算是像素的逐点运算,它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的灰度值决定。点运算不会改个像素点的灰度值仅由对应的输入像素点的灰度值决定。点运算不会改变图像内像素点之间的空间关系。设输入图像为变图像内像素点之间的空间关系。设输入图像为A(x,y),输出图像为,输出图像为B(x,y),则点运算可表示为则点运算可表示为:B(x,y)=fA(x,y)。点运算完全由灰度映射函。点运算完全由灰度映射函数数f决定。根据决定。根据f的不同可以将图像的点运算分为线性点运算和非线性点的不同可以将图像的点运算分为线性点运算和非线性点运算
9、两种。运算两种。2 2 2 2、线性点运算、线性点运算、线性点运算、线性点运算当当当当a1a1时时, , , ,输输出出出出图图像的像的像的像的对对比度会增大;比度会增大;比度会增大;比度会增大;当当当当alal时时, , , ,输输出出出出图图像的像的像的像的对对比度会减小;比度会减小;比度会减小;比度会减小;当当当当a=1a=1, , , ,b=0b=0时时, , , ,输输出出出出图图像就是像就是像就是像就是输输入入入入图图像的像的像的像的简单简单复制;复制;复制;复制;当当当当a=1a=1, , , ,b0b0时时, , , ,输输出出出出图图像在整体效果上比像在整体效果上比像在整体效
10、果上比像在整体效果上比输输入入入入图图像要明亮或灰暗。像要明亮或灰暗。像要明亮或灰暗。像要明亮或灰暗。当当当当a=-1a=-1, , , ,b=0b=0时时, , , ,产产生生生生负负象象象象【 【 【 【例例例例】 】 】 】线线性点运算性点运算性点运算性点运算rice=imread(rice.png);rice=imread(rice.png);I=double(rice);I=double(rice);J=I*0.43+60;J=I*0.43+60;rice2=uint8(J);rice2=uint8(J);subplot(1,2,1),imshow(rice);subplot(1,2
11、,1),imshow(rice);subplot(1,2,2),imshow(rice2); 【例例例例】负象负象负象负象rice=imread(rice.png);rice=imread(rice.png);I=double(rice);I=double(rice);J=-1*I;J=-1*I;subplot(1,2,1),imshow(I,);subplot(1,2,1),imshow(I,);subplot(1,2,2),imshow(J,); 3 3 3 3、非线性点运算、非线性点运算、非线性点运算、非线性点运算阈值处理和直方图均匀化,是两种典型的非线性运算阈值处理和直方图均匀化,是两
12、种典型的非线性运算 6.1.3 图像的代数运算图像的代数运算1 1、 、 、 、图图像的加法像的加法像的加法像的加法格式如下:格式如下:格式如下:格式如下:Z=imadd(X,Y)Z=imadd(X,Y);其中;其中;其中;其中Z=XZ=XY Y。 。 。 。【 【 【 【例例例例】 】 】 】增加增加增加增加RGBRGB图图像的亮度像的亮度像的亮度像的亮度RGB=imread(onion.png);RGB=imread(onion.png);RGB2=imadd(RGB,50);RGB2=imadd(RGB,50);subplot(1,2,1),imshow(RGB);subplot(1,2
13、,1),imshow(RGB);subplot(1,2,2),imshow(RGB2); 2 2、 、 、 、图图像的减法像的减法像的减法像的减法调调用格式如下:用格式如下:用格式如下:用格式如下:Z=imsubtract(X,Y)Z=imsubtract(X,Y);其中;其中;其中;其中Z=XZ=XY Y。 。 。 。【 【 【 【例例例例】 】 】 】减去不均匀背景减去不均匀背景减去不均匀背景减去不均匀背景rice=imread(rice.png);rice=imread(rice.png);background=imopen(rice,strel(disk,15);background=
14、imopen(rice,strel(disk,15);rice2=imsubtract(rice,background);rice2=imsubtract(rice,background);subplot(1,2,1),imshow(rice);subplot(1,2,1),imshow(rice);subplot(1,2,2),imshow(rice2); 3 3、图像的乘法、图像的乘法、图像的乘法、图像的乘法I=imread(moon.tif);I=imread(moon.tif);J=immultiply(I,1.2);J=immultiply(I,1.2);K=immultiply(I
15、,0.6);K=immultiply(I,0.6); 4、图像的除法、图像的除法 图像除法运算又称为比率变换,给出的是相应像素值的变换比率,不图像除法运算又称为比率变换,给出的是相应像素值的变换比率,不是每个像素的绝对差异是每个像素的绝对差异.可用于校正成像设备的非线性影响可用于校正成像设备的非线性影响 。rice=imread(rice.png);rice=imread(rice.png);I=double(rice);I=double(rice);J=0.43*I+90;J=0.43*I+90;Ip=imdivide(I,J);Ip=imdivide(I,J);5、图像的四则运算、图像的四
16、则运算因对因对uint8、uintl6数据,每步运算都要进行数据截取,将会减少数据,每步运算都要进行数据截取,将会减少输出图像的信息量。图像四则运算较好的办法是使用函数输出图像的信息量。图像四则运算较好的办法是使用函数imlincomb。该函数按双精度执行所有代数运算操作,仅对最后。该函数按双精度执行所有代数运算操作,仅对最后的输出结果进行截取,该函数的调用格式如下:的输出结果进行截取,该函数的调用格式如下:Z=imlincomb(A,X,B,Y,C),其中,其中,Z=AXBYCZ=imlincomb(A,X,C),其中:,其中:ZAXCZ=imlincomb(A,X,B,Y),其中:,其中:
17、Z=AXBY【 【 【 【例例例例】 】 】 】计计算两幅算两幅算两幅算两幅图图像的平均像的平均像的平均像的平均值值I1=imread(rice.png);I1=imread(rice.png);I2=imread(cameraman.tif);I2=imread(cameraman.tif);% K=imdivide(imadd(I1,I2),2);% K=imdivide(imadd(I1,I2),2);K=imlincomb(0.5,I1,0.5,I2);K=imlincomb(0.5,I1,0.5,I2);6.1.4 图像的几何运算图像的几何运算1 1、概述、概述、概述、概述 几何运算
18、与点运算不同,可以看成是像素在几何运算与点运算不同,可以看成是像素在几何运算与点运算不同,可以看成是像素在几何运算与点运算不同,可以看成是像素在图图像内的移像内的移像内的移像内的移动过动过程,程,程,程,该该移移移移动过动过程可以改程可以改程可以改程可以改变图变图像中物体像中物体像中物体像中物体对对象象象象( (像素像素像素像素) )之之之之间间的空的空的空的空间间关系。几何运关系。几何运关系。几何运关系。几何运算可以是不受任何限制的,但是通常都需要做出一些限制以保持算可以是不受任何限制的,但是通常都需要做出一些限制以保持算可以是不受任何限制的,但是通常都需要做出一些限制以保持算可以是不受任何
19、限制的,但是通常都需要做出一些限制以保持图图像像像像的外的外的外的外观顺观顺序。完整的几何运算需要由两个算法来序。完整的几何运算需要由两个算法来序。完整的几何运算需要由两个算法来序。完整的几何运算需要由两个算法来实现实现:空:空:空:空间变换间变换算法算法算法算法和灰度插和灰度插和灰度插和灰度插值值算法。算法。算法。算法。空空空空间变换间变换主要用来保持主要用来保持主要用来保持主要用来保持图图像中曲像中曲像中曲像中曲线线的的的的连续连续性和物体的性和物体的性和物体的性和物体的连连通性,一般都采用通性,一般都采用通性,一般都采用通性,一般都采用数学函数形式来描述数学函数形式来描述数学函数形式来描
20、述数学函数形式来描述输输入、入、入、入、输输出出出出图图像相像相像相像相应应像素像素像素像素间间的空的空的空的空间间关系。空关系。空关系。空关系。空间变换间变换的的的的一般定一般定一般定一般定义为义为 。其中,其中,f表示输入图像,表示输入图像,g表示输出图像,坐标表示输出图像,坐标(x,y)指的是空间变换后的指的是空间变换后的坐标,要注意这时的坐标已经不是原来的坐标坐标,要注意这时的坐标已经不是原来的坐标(x,y)了。了。a(x,y)和和b(x,y)分分别是图像的别是图像的x和和y坐标的空间变换函数。坐标的空间变换函数。 灰度级插值主要是对空间变换后的像素赋予灰度值,使之恢复原位灰度级插值主
21、要是对空间变换后的像素赋予灰度值,使之恢复原位置处的灰度值。在几何运算中,灰度级插值是必不可少的组成部分,因置处的灰度值。在几何运算中,灰度级插值是必不可少的组成部分,因为图像一般用整数位置处的像素来定义。而在几何变换中,为图像一般用整数位置处的像素来定义。而在几何变换中,g(x,y)的灰的灰度值一般由处在非整数坐标上的度值一般由处在非整数坐标上的f(x,y)的值来确定,即的值来确定,即g中的一个像素一中的一个像素一般对应于般对应于f中的几个像素之间的位置,反过来看也是一样,即中的几个像素之间的位置,反过来看也是一样,即f中的一个中的一个像素往往被映射到像素往往被映射到g中的几个像素之间的位置
22、。中的几个像素之间的位置。5 5、简单的空间变换、简单的空间变换、简单的空间变换、简单的空间变换(1) (1) 图图像像像像缩缩放放放放B=imresize(A,M,METHOD)B=imresize(A,M,METHOD),其中:,其中:,其中:,其中:A A 原原原原图图像;像;像;像;M M 缩缩放系数;放系数;放系数;放系数;B B 缩缩放后的放后的放后的放后的图图像;像;像;像;METHOD插插值方法,可取方法,可取值nearest, ,bilinear和和bicubic 【 【 【 【例例例例】 】 】 】原原原原图图像放大像放大像放大像放大1.251.25倍倍倍倍I,map=im
23、read(kids.tif);I,map=imread(kids.tif);J=imresize(I,1.25);J=imresize(I,1.25);subplot(1,2,1),subimage(I,map)subplot(1,2,1),subimage(I,map)subplot(1,2,2),subimage(J,map) (2) (2) 图图像旋像旋像旋像旋转转B=imrotate(A,ANGLE,METHOD,BBOX)B=imrotate(A,ANGLE,METHOD,BBOX),其中:,其中:,其中:,其中:A A需要旋需要旋需要旋需要旋转转的的的的图图像;像;像;像;ANGL
24、EANGLE表示旋表示旋表示旋表示旋转转的角度,正的角度,正的角度,正的角度,正值为值为逆逆逆逆时针时针; ; ; ;METHODMETHOD插插插插值值方法;方法;方法;方法;BBOX BBOX 取取取取值值looseloose(缺省)、(缺省)、(缺省)、(缺省)、cropcrop【 【 【 【例例例例】 】 】 】图图像旋像旋像旋像旋转转I,map=imread(kids.tif);I,map=imread(kids.tif);J=imrotate(I,35,bilinear);J=imrotate(I,35,bilinear);J1=imrotate(I,35,bilinear,cro
25、p) (3) (3) (3) (3) 图像剪切图像剪切图像剪切图像剪切使用使用imcrop函数可以从一幅图像中抽取一个矩形的部分。函数可以从一幅图像中抽取一个矩形的部分。imcrop函数函数的调用格式如下:的调用格式如下:X2=imcrop(X,MAP,RECT)I2 = imcrop(m);I2 = imcrop(m);imshow(I22, )imshow(I22, )6.1.5 仿射变换仿射变换仿射变换,可以用以下函数来描述:仿射变换,可以用以下函数来描述:仿射变换,可以用以下函数来描述:仿射变换,可以用以下函数来描述:,其中,其中,其中,其中,A A是变形矩阵,是变形矩阵,是变形矩阵,
26、是变形矩阵,b b是平移矩阵。是平移矩阵。是平移矩阵。是平移矩阵。(1) (1) 尺度变换尺度变换尺度变换尺度变换变换矩阵:变换矩阵:变换矩阵:变换矩阵:,S0,S0【例例例例】CLF;I=checkerboard(20,2);CLF;I=checkerboard(20,2);subplot(121);imshow(I);axis on;title(subplot(121);imshow(I);axis on;title(原图原图原图原图) )s=1.5;T=s 0;0 s;0 0;s=1.5;T=s 0;0 s;0 0;tf=maketform(affine,T);tf=maketform(
27、affine,T);I1=imtransform(I,tf,bicubic,FillValues,0.3);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);axis on;title(subplot(122);imshow(I1);axis on;title(尺度变换尺度变换尺度变换尺度变换) ) (2) (2) 伸缩变换伸缩变换伸缩变换伸缩变换变换矩矩阵: 【例例例例】CLF;I=checkerboard(20,2);CLF;I=checkerboard(20,2);subplot(121);imshow
28、(I);axis on;title(subplot(121);imshow(I);axis on;title(原图原图原图原图) )t=2;T=1 0;0 t;0 0;t=2;T=1 0;0 t;0 0;tf=maketform(affine,T);tf=maketform(affine,T);I1=imtransform(I,tf,bicubic,FillValues,0.3);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);axis on;title(subplot(122);imshow(I1);ax
29、is on;title(伸伸伸伸缩变换缩变换) ) (3) (3) 扭曲变换扭曲变换扭曲变换扭曲变换变换矩矩阵: 【例例例例】CLF;I=checkerboard(20,2);CLF;I=checkerboard(20,2);subplot(121);imshow(I);axis on;title(subplot(121);imshow(I);axis on;title(原图原图原图原图) )u=0.5;T=1 u;0 1;0 0;u=0.5;T=1 u;0 1;0 0;tf=maketform(affine,T);tf=maketform(affine,T);I1=imtransform(I
30、,tf,bicubic,FillValues,0.3);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);axis on;title(subplot(122);imshow(I1);axis on;title(扭曲扭曲扭曲扭曲变换变换) ) (4) (4) 旋转变换旋转变换旋转变换旋转变换变换矩阵:变换矩阵:变换矩阵:变换矩阵:【例例例例】CLF;I = checkerboard(20,2);CLF;I = checkerboard(20,2);subplot(1,2,1);imshow(I);title(s
31、ubplot(1,2,1);imshow(I);title(原图原图原图原图) )angle=20*pi/180;angle=20*pi/180;sc=cos(angle);ss=sin(angle);sc=cos(angle);ss=sin(angle);T=sc -ss; ss sc;0 0;T=sc -ss; ss sc;0 0;tf=maketform(affine,T);tf=maketform(affine,T);I1=imtransform(I,tf,bicubic,FillValues,0.3);I1=imtransform(I,tf,bicubic,FillValues,0.
32、3);subplot(122);imshow(I1);title(subplot(122);imshow(I1);title(旋转变换旋转变换旋转变换旋转变换) ) (5) (5) 综合变换综合变换综合变换综合变换变换矩矩阵 【例例例例】CLF;I = checkerboard(20,2);CLF;I = checkerboard(20,2);subplot(1,2,1);imshow(I);title(subplot(1,2,1);imshow(I);title(原图原图原图原图) )s=2;As=s 0;0 s; % s=2;As=s 0;0 s; % 尺度尺度尺度尺度t=2;At=1 0
33、;0 t; % t=2;At=1 0;0 t; % 伸缩伸缩伸缩伸缩u=1.5;Au=1 u;0 1; % u=1.5;Au=1 u;0 1; % 扭曲扭曲扭曲扭曲st=30*pi/180;sc=cos(angle);ss=sin(angle);st=30*pi/180;sc=cos(angle);ss=sin(angle);Ast=sc -ss; ss sc; % Ast=sc -ss; ss sc; % 旋转旋转旋转旋转T=As*At*Au*Ast;3 5;T=As*At*Au*Ast;3 5;tf=maketform(affine,T);tf=maketform(affine,T);I1
34、=imtransform(I,tf,bicubic,FillValues,0.3);I1=imtransform(I,tf,bicubic,FillValues,0.3);subplot(122);imshow(I1);title(subplot(122);imshow(I1);title(综合综合综合综合) ) (6)(6)控制点控制点控制点控制点变换变换【例例例例】I=imread(cameraman.tif);I=imread(cameraman.tif);udata=0 1;vdata=0 1;udata=0 1;vdata=0 1;tform=maketform(projective
35、,.tform=maketform(projective,.0 0;1 0;1 1;0 1,-4 2;-8 -3;-3 -5;6 2);0 0;1 0;1 1;0 1,-4 2;-8 -3;-3 -5;6 2);B,xdata,ydata=imtransform(I,tform,.B,xdata,ydata=imtransform(I,tform,.bicubic,udata,udata,vdata,vdata,size,size(I),fill,128);bicubic,udata,udata,vdata,vdata,size,size(I),fill,128);subplot(1,2,1)
36、;imshow(udata,vdata,I),axis onsubplot(1,2,1);imshow(udata,vdata,I),axis onsubplot(1,2,2);imshow(xdata,ydata,B),axis onsubplot(1,2,2);imshow(xdata,ydata,B),axis on 6.2 图像类型与彩色图像类型与彩色模型转换模型转换【主要内容主要内容主要内容主要内容】一、图像类型的转换一、图像类型的转换一、图像类型的转换一、图像类型的转换1 1、真彩图像、真彩图像、真彩图像、真彩图像索引图像索引图像索引图像索引图像2 2、索引图像、索引图像、索引图像
37、、索引图像真彩图像真彩图像真彩图像真彩图像3 3、真彩图像、真彩图像、真彩图像、真彩图像灰度图像灰度图像灰度图像灰度图像4 4、真彩图像、真彩图像、真彩图像、真彩图像二值图像二值图像二值图像二值图像5 5、索引图像、索引图像、索引图像、索引图像灰度图像灰度图像灰度图像灰度图像6 6、灰度图像、灰度图像、灰度图像、灰度图像索引图像索引图像索引图像索引图像7 7、灰度图像、灰度图像、灰度图像、灰度图像二值图像二值图像二值图像二值图像8 8、索引图像、索引图像、索引图像、索引图像二值图像二值图像二值图像二值图像9 9、数据矩阵、数据矩阵、数据矩阵、数据矩阵灰度图像灰度图像灰度图像灰度图像二、彩色模型
38、的转换二、彩色模型的转换二、彩色模型的转换二、彩色模型的转换1 1、图像的彩色模型、图像的彩色模型、图像的彩色模型、图像的彩色模型2 2、彩色转换函数、彩色转换函数、彩色转换函数、彩色转换函数三、纹理映射三、纹理映射三、纹理映射三、纹理映射二值图像二值图像二值图像二值图像灰度图像灰度图像灰度图像灰度图像数据矩阵数据矩阵数据矩阵数据矩阵索引图像索引图像索引图像索引图像真彩图像真彩图像真彩图像真彩图像A AI IX,mapX,mapRGBRGBBWBW6.2.1 图像类型的转换图像类型的转换转换类转换类型型型型转换转换函数函数函数函数用用用用 处处真彩图像真彩图像真彩图像真彩图像索引图像索引图像索
39、引图像索引图像X=dither(RGB,map)X=dither(RGB,map)节省存储空间,假彩色节省存储空间,假彩色节省存储空间,假彩色节省存储空间,假彩色索引图像索引图像索引图像索引图像真彩图像真彩图像真彩图像真彩图像RGB=ind2rgb(X,map)RGB=ind2rgb(X,map)便于图像处理便于图像处理便于图像处理便于图像处理真彩图像真彩图像真彩图像真彩图像灰度图像灰度图像灰度图像灰度图像I=rgb2gray(RGB)I=rgb2gray(RGB)得到亮度分布得到亮度分布得到亮度分布得到亮度分布真彩图像真彩图像真彩图像真彩图像二值图像二值图像二值图像二值图像BW=im2bw(
40、RGB,level)BW=im2bw(RGB,level)阈值处理,筛选阈值处理,筛选阈值处理,筛选阈值处理,筛选索引图像索引图像索引图像索引图像灰度图像灰度图像灰度图像灰度图像I=ind2gray(X,map)I=ind2gray(X,map)Newmap=rgb2gray(map)Newmap=rgb2gray(map)得到亮度分布得到亮度分布得到亮度分布得到亮度分布灰度图像灰度图像灰度图像灰度图像索引图像索引图像索引图像索引图像X,map=gray2ind(I,n),X,map=gray2ind(I,n),X=grayslice(I,n)X=grayslice(I,n)X=graysli
41、ce(I,v)X=grayslice(I,v)伪彩色处理伪彩色处理伪彩色处理伪彩色处理灰度图像灰度图像灰度图像灰度图像二值图像二值图像二值图像二值图像BW=dither(I)BW=dither(I)BW=im2bw(I,level)BW=im2bw(I,level)阈值处理,筛选阈值处理,筛选阈值处理,筛选阈值处理,筛选索引图像索引图像索引图像索引图像二值图像二值图像二值图像二值图像BW=im2bw(X,map,level)BW=im2bw(X,map,level)阈值处理,筛选阈值处理,筛选阈值处理,筛选阈值处理,筛选数据矩阵数据矩阵数据矩阵数据矩阵灰度图像灰度图像灰度图像灰度图像I=mat
42、2gray(A,max,min)I=mat2gray(A,max,min)I=mat2gray(A)I=mat2gray(A)产生图像产生图像产生图像产生图像1 1、真彩、真彩、真彩、真彩图图像像像像索引索引索引索引图图像像像像【格式格式格式格式】X=dither(RGB,map)X=dither(RGB,map)【说明说明说明说明】按指定的颜色表按指定的颜色表按指定的颜色表按指定的颜色表mapmap通过颜色抖动实现转换通过颜色抖动实现转换通过颜色抖动实现转换通过颜色抖动实现转换【输入输入输入输入】RGBRGB可以是可以是可以是可以是doubledouble或或或或uint8uint8类型类型
43、类型类型【输出输出输出输出】X X超过超过超过超过256256色则为色则为色则为色则为doubledouble类型,否则输出为类型,否则输出为类型,否则输出为类型,否则输出为uint8uint8型型型型【例例例例】CLF,RGB=imread(flowers.tif);CLF,RGB=imread(flowers.tif);map=jet(256);map=jet(256);X=dither(RGB,map);X=dither(RGB,map);subplot(1,2,1);subimage(RGB);title(subplot(1,2,1);subimage(RGB);title(真彩图真彩
44、图真彩图真彩图) )subplot(1,2,2);subimage(X,map);title(subplot(1,2,2);subimage(X,map);title(索引图索引图索引图索引图) ) 2 2、真彩、真彩、真彩、真彩图图像像像像灰度灰度灰度灰度图图像像像像【格式格式格式格式】I=rgb2gray(RGB)I=rgb2gray(RGB)【输入输入输入输入】RGBRGB可以是可以是可以是可以是doubledouble或或或或uint8uint8类型类型类型类型【输出输出输出输出】I I类型同类型同类型同类型同RGBRGB【例例例例】CLF,RGB=imread(flowers.tif
45、);CLF,RGB=imread(flowers.tif);I=rgb2gray(RGB);I=rgb2gray(RGB);subplot(1,2,1);subimage(RGB);title(subplot(1,2,1);subimage(RGB);title(真彩图真彩图真彩图真彩图) )subplot(1,2,2);subimage(I);title(subplot(1,2,2);subimage(I);title(灰度图灰度图灰度图灰度图) ) 3 3、数据矩、数据矩、数据矩、数据矩阵阵灰度灰度灰度灰度图图像像像像【格式格式格式格式】1 1、I=mat2gray(A,max,min)I
46、=mat2gray(A,max,min)2 2、I=mat2gray(A)I=mat2gray(A)【说明说明说明说明】按指定的取值区间按指定的取值区间按指定的取值区间按指定的取值区间max,minmax,min将数据矩阵将数据矩阵将数据矩阵将数据矩阵A A转换为灰转换为灰转换为灰转换为灰度图像度图像度图像度图像I I。如不指定区间,自动取最大区间。如不指定区间,自动取最大区间。如不指定区间,自动取最大区间。如不指定区间,自动取最大区间。【输入输入输入输入】A A为为为为doubledouble类型类型类型类型【输出输出输出输出】I I为为为为doubledouble类型类型类型类型【例例例例
47、】CLF;I=imread(rice.tif);CLF;I=imread(rice.tif);A=filter2(fspecial(sobel),I);A=filter2(fspecial(sobel),I);J=mat2gray(A);J=mat2gray(A);subplot(1,2,1);subimage(I);title(subplot(1,2,1);subimage(I);title(原图原图原图原图) )subplot(1,2,2);subimage(J);title(subplot(1,2,2);subimage(J);title(转换图转换图转换图转换图) ) 6.2.2 色彩
48、模型转换色彩模型转换1 1、 、 、 、图图像的彩色模型像的彩色模型像的彩色模型像的彩色模型(1) RGB(1) RGB模型模型模型模型是色光的彩色模式,是色光的彩色模式,是色光的彩色模式,是色光的彩色模式,R R代表红色,代表红色,代表红色,代表红色,GG代表绿色,代表绿色,代表绿色,代表绿色,B B代表蓝色,通常所说代表蓝色,通常所说代表蓝色,通常所说代表蓝色,通常所说的真彩色。的真彩色。的真彩色。的真彩色。(2) NTSC(2) NTSC模型模型模型模型NTSCNTSC模型用于电视信号。其特点是亮度信号与色度信号相分离。一模型用于电视信号。其特点是亮度信号与色度信号相分离。一模型用于电视
49、信号。其特点是亮度信号与色度信号相分离。一模型用于电视信号。其特点是亮度信号与色度信号相分离。一个信号能同时表示彩色图像和黑白图像。他的个信号能同时表示彩色图像和黑白图像。他的个信号能同时表示彩色图像和黑白图像。他的个信号能同时表示彩色图像和黑白图像。他的Y Y表示亮度,表示亮度,表示亮度,表示亮度,I I表示色度,表示色度,表示色度,表示色度,QQ表示饱和度。表示饱和度。表示饱和度。表示饱和度。(3) HSV(3) HSV模型模型模型模型根据人眼的视觉特性表示的颜色,根据人眼的视觉特性表示的颜色,根据人眼的视觉特性表示的颜色,根据人眼的视觉特性表示的颜色,H H表示色调,表示色调,表示色调,
50、表示色调,S S表示饱和度,表示饱和度,表示饱和度,表示饱和度,V V表示表示表示表示明度。明度。明度。明度。(4) YCbCr(4) YCbCr模型模型模型模型一种彩色模型,一种彩色模型,一种彩色模型,一种彩色模型,Y Y表示亮度信号,表示亮度信号,表示亮度信号,表示亮度信号,CbCb、CrCr两个色度分量。两个色度分量。两个色度分量。两个色度分量。2 2、彩色、彩色、彩色、彩色转换转换函数函数函数函数RGBNTSCHSVYCbCr(1) RGB(1) RGB颜色空间转换到颜色空间转换到颜色空间转换到颜色空间转换到NTSCNTSC颜色空间颜色空间颜色空间颜色空间【格式格式格式格式】YIQMA
51、P=rgb2ntsc(RGBMAPYIQMAP=rgb2ntsc(RGBMAP【格式格式格式格式】YIQ=rgb2ntsc(RGB)YIQ=rgb2ntsc(RGB)【说明说明说明说明】表示将表示将表示将表示将RGBRGB图像转换为图像转换为图像转换为图像转换为NTSCNTSC图像图像图像图像(3) rgb2hsv(3) rgb2hsv(4) hsv2rgb(4) hsv2rgb(5) rgb2ycbcr(5) rgb2ycbcr(6) ycbcr2rgb(6) ycbcr2rgb(2) NTSC(2) NTSC颜色空间转换到颜色空间转换到颜色空间转换到颜色空间转换到RGBRGB颜色颜色颜色颜
52、色【格式格式格式格式】RGBMAP=ntsc2rgb(YIQMAP)RGBMAP=ntsc2rgb(YIQMAP)【格式格式格式格式】RGB=ntsc2rgb(YIQ)RGB=ntsc2rgb(YIQ)【说明说明说明说明】表示将表示将表示将表示将YIQYIQ图像转换为图像转换为图像转换为图像转换为RGBRGB图像图像图像图像使用使用使用使用imshowimshow命令时,命令时,命令时,命令时,MATLABMATLAB通常以二维视图形式显示一幅图像。通常以二维视图形式显示一幅图像。通常以二维视图形式显示一幅图像。通常以二维视图形式显示一幅图像。纹理映射使用纹理映射使用纹理映射使用纹理映射使用W
53、ARPWARP命令通过插值的方法将一幅图像映射到一个曲命令通过插值的方法将一幅图像映射到一个曲命令通过插值的方法将一幅图像映射到一个曲命令通过插值的方法将一幅图像映射到一个曲面网格上。格式如下:面网格上。格式如下:面网格上。格式如下:面网格上。格式如下:WARP(X,MAP) WARP(X,MAP) 将索引图像显示在缺省表面上将索引图像显示在缺省表面上将索引图像显示在缺省表面上将索引图像显示在缺省表面上WARP(I,N) WARP(I,N) 将灰度图像显示在缺省表面上将灰度图像显示在缺省表面上将灰度图像显示在缺省表面上将灰度图像显示在缺省表面上WARP(BW) WARP(BW) 将二值图像显示
54、在缺省表面上将二值图像显示在缺省表面上将二值图像显示在缺省表面上将二值图像显示在缺省表面上WARP(RGB) WARP(RGB) 将真彩图像显示在缺省表面上将真彩图像显示在缺省表面上将真彩图像显示在缺省表面上将真彩图像显示在缺省表面上WARP(z,.) WARP(z,.) 将图像显示将图像显示将图像显示将图像显示z z表面上表面上表面上表面上WARP(x,y,z,.) WARP(x,y,z,.) 将图像显示(将图像显示(将图像显示(将图像显示(x,y,zx,y,z)表面上)表面上)表面上)表面上H = WARP(.) H = WARP(.) 返回图像的句柄返回图像的句柄返回图像的句柄返回图像的
55、句柄输入图像的数据格式可以是输入图像的数据格式可以是输入图像的数据格式可以是输入图像的数据格式可以是logicallogical、uint8uint8、uint16uint16或或或或doubledouble类型。类型。类型。类型。【例例例例】x,y,z=cylinder;x,y,z=cylinder;I=imread(FLOWERS.TIF);I=imread(FLOWERS.TIF);warp(x,y,z,I);warp(x,y,z,I); 6.2.3 纹理映射纹理映射 【例例例例】X,Y,Z=ELLIPSOID(0,0,0,1,2,3,50);X,Y,Z=ELLIPSOID(0,0,0,1,2,3,50);SURF(X,Y,Z);SURF(X,Y,Z);RGB=IMREAD(FLOWERS.TIF);RGB=IMREAD(FLOWERS.TIF);WARP(X,Y,Z,RGB); WARP(X,Y,Z,RGB); P=PEAKS(50);P=PEAKS(50);RGB=IMREAD(greens.jpg);RGB=IMREAD(greens.jpg);WARP(P,RGB);WARP(P,RGB);