LectureMatlab医学图像处理_第1页
LectureMatlab医学图像处理_第2页
LectureMatlab医学图像处理_第3页
LectureMatlab医学图像处理_第4页
LectureMatlab医学图像处理_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LectureMatlab医学图像处理第1页/共34页6.1图像运算[主要内容]一、图像运算的基本形式1、点运算2、领域运算3、并行运算4、串行运算5、迭代运算6、窗口运算7、模板运算8、帧运算二、图像的点运算三、图像的代数运算四、图像的几何运算1、概述2、象素坐标系统3、空间坐标系统4、灰度级插值5、简单的空间变换五、仿射变换第2页/共34页6.1.1图像运算的基本形式顺向扫描逆向扫描1、点运算在对图像各象素进行处理时,只输入该象素本身灰度的运算称为点运算。

第3页/共34页2、领域运算在对图像各象素进行处理时,不仅输入该象素本身的灰度,还要输入以该象素为中心的某些局部区域中的一些象素的灰度进行运算的方式叫领域运算。第4页/共34页3、并行运算并行运算指的是对图像上各象素同时进行相同处理的运算方式。点运算由于各象素的处理与其他象素无关,因为不论采用顺向扫描还是逆向扫描,结果是一样的,所以点运算可以采用并行运算。对于领域运算,上图可以采用并行运算。下图处理用到前处理的结果,所以不能采用并行处理方式。4、串行运算指按照顺序对逐个象素进行处理的方式。上图即是。5、迭代运算反复多次进行相同处理的运算,称为迭代运算。6、窗口运算为减少运算时间,常对图像的某一部分进行的运算叫窗口运算。第5页/共34页7、模板运算对特定形状的区域进行某种运算方式叫模板运算。8.帧运算在两幅或多幅图像之间产生的运算叫帧运算。第6页/共34页6.1.2图像的点运算1、概述点运算也称为对比度增强和拉伸、灰度变换,是一种通过对图像中的每个像素值进行计算,从而改善图像显示效果的操作。点运算常用于改变图像的灰度范围及分布,是图像数字化及图像显示的重要工具。在真正进行图像处理之前,有时可以用点运算来克服图像数字化设备的局限性。点运算是像素的逐点运算,它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的灰度值决定。点运算不会改变图像内像素点之间的空间关系。设输入图像为A(x,y),输出图像为B(x,y),则点运算可表示为:B(x,y)=f[A(x,y)]。点运算完全由灰度映射函数f决定。根据f的不同可以将图像的点运算分为线性点运算和非线性点运算两种。2、线性点运算第7页/共34页当a>1时,输出图像的对比度会增大;当a<l时,输出图像的对比度会减小;当a=1,b=0时,输出图像就是输入图像的简单复制;当a=1,b≠0时,输出图像在整体效果上比输入图像要明亮或灰暗。当a=-1,b=0时,产生负象【例】线性点运算rice=imread('rice.png');I=double(rice);J=I*0.43+60;rice2=uint8(J);subplot(1,2,1),imshow(rice);subplot(1,2,2),imshow(rice2);

【例】负象rice=imread('rice.png');I=double(rice);J=-1*I;subplot(1,2,1),imshow(I,[]);subplot(1,2,2),imshow(J,[]);

第8页/共34页3、非线性点运算阈值处理和直方图均匀化,是两种典型的非线性运算

6.1.3图像的代数运算1、图像的加法格式如下:Z=imadd(X,Y);其中Z=X+Y。【例】增加RGB图像的亮度RGB=imread('onion.png');RGB2=imadd(RGB,50);subplot(1,2,1),imshow(RGB);subplot(1,2,2),imshow(RGB2);

2、图像的减法调用格式如下:Z=imsubtract(X,Y);其中Z=X-Y。【例】减去不均匀背景rice=imread('rice.png');background=imopen(rice,strel('disk',15));rice2=imsubtract(rice,background);subplot(1,2,1),imshow(rice);subplot(1,2,2),imshow(rice2);

第9页/共34页3、图像的乘法I=imread('moon.tif');J=immultiply(I,1.2);K=immultiply(I,0.6);

4、图像的除法

图像除法运算又称为比率变换,给出的是相应像素值的变换比率,不是每个像素的绝对差异.可用于校正成像设备的非线性影响。rice=imread('rice.png');I=double(rice);J=0.43*I+90;Ip=imdivide(I,J);第10页/共34页5、图像的四则运算因对uint8、uintl6数据,每步运算都要进行数据截取,将会减少输出图像的信息量。图像四则运算较好的办法是使用函数imlincomb。该函数按双精度执行所有代数运算操作,仅对最后的输出结果进行截取,该函数的调用格式如下:Z=imlincomb(A,X,B,Y,C),其中,Z=A×X+B×Y+CZ=imlincomb(A,X,C),其中:Z=A×X+CZ=imlincomb(A,X,B,Y),其中:Z=A×X+B×Y【例】计算两幅图像的平均值I1=imread('rice.png');I2=imread('cameraman.tif');%K=imdivide(imadd(I1,I2),2);K=imlincomb(0.5,I1,0.5,I2);第11页/共34页6.1.4图像的几何运算1、概述几何运算与点运算不同,可以看成是像素在图像内的移动过程,该移动过程可以改变图像中物体对象(像素)之间的空间关系。几何运算可以是不受任何限制的,但是通常都需要做出一些限制以保持图像的外观顺序。完整的几何运算需要由两个算法来实现:空间变换算法和灰度插值算法。空间变换主要用来保持图像中曲线的连续性和物体的连通性,一般都采用数学函数形式来描述输入、输出图像相应像素间的空间关系。空间变换的一般定义为。其中,f表示输入图像,g表示输出图像,坐标(x',y')指的是空间变换后的坐标,要注意这时的坐标已经不是原来的坐标(x,y)了。a(x,y)和b(x,y)分别是图像的x和y坐标的空间变换函数。灰度级插值主要是对空间变换后的像素赋予灰度值,使之恢复原位置处的灰度值。在几何运算中,灰度级插值是必不可少的组成部分,因为图像一般用整数位置处的像素来定义。而在几何变换中,g(x,y)的灰度值一般由处在非整数坐标上的f(x,y)的值来确定,即g中的一个像素一般对应于f中的几个像素之间的位置,反过来看也是一样,即f中的一个像素往往被映射到g中的几个像素之间的位置。第12页/共34页5、简单的空间变换(1)图像缩放B=imresize(A,M,METHOD),其中:A-原图像;M-缩放系数;B-缩放后的图像;METHOD-插值方法,可取值'nearest','bilinear'和'bicubic'

【例】原图像放大1.25倍[I,map]=imread('kids.tif');J=imresize(I,1.25);subplot(1,2,1),subimage(I,map)subplot(1,2,2),subimage(J,map)

第13页/共34页(2)图像旋转B=imrotate(A,ANGLE,METHOD,BBOX),其中:A-需要旋转的图像;ANGLE-表示旋转的角度,正值为逆时针;METHOD-插值方法;BBOX-取值loose(缺省)、crop【例】图像旋转[I,map]=imread('kids.tif');J=imrotate(I,35,'bilinear');J1=imrotate(I,35,'bilinear','crop')

(3)图像剪切使用imcrop函数可以从一幅图像中抽取一个矩形的部分。imcrop函数的调用格式如下:X2=imcrop(X,MAP,RECT)I2=imcrop(m);imshow(I22,[])第14页/共34页6.1.5仿射变换仿射变换,可以用以下函数来描述:,其中,A是变形矩阵,b是平移矩阵。(1)尺度变换变换矩阵:,S≥0【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axison;title('原图')s=1.5;T=[s0;0s;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);axison;title('尺度变换')

第15页/共34页(2)伸缩变换变换矩阵:

【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axison;title('原图')t=2;T=[10;0t;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);axison;title('伸缩变换')

第16页/共34页(3)扭曲变换变换矩阵:

【例】CLF;I=checkerboard(20,2);subplot(121);imshow(I);axison;title('原图')u=0.5;T=[1u;01;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);axison;title('扭曲变换')

第17页/共34页(4)旋转变换变换矩阵:【例】CLF;I=checkerboard(20,2);subplot(1,2,1);imshow(I);title('原图')angle=20*pi/180;sc=cos(angle);ss=sin(angle);T=[sc-ss;sssc;00];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);title('旋转变换')

第18页/共34页(5)综合变换变换矩阵

【例】CLF;I=checkerboard(20,2);subplot(1,2,1);imshow(I);title('原图')s=2;As=[s0;0s];%尺度t=2;At=[10;0t];%伸缩u=1.5;Au=[1u;01];%扭曲st=30*pi/180;sc=cos(angle);ss=sin(angle);Ast=[sc-ss;sssc];%旋转T=[As*At*Au*Ast;35];tf=maketform('affine',T);I1=imtransform(I,tf,'bicubic','FillValues',0.3);subplot(122);imshow(I1);title('综合')

第19页/共34页(6)控制点变换【例】I=imread('cameraman.tif');udata=[01];vdata=[01];tform=maketform('projective',...[00;10;11;01],[-42;-8-3;-3-5;62]);[B,xdata,ydata]=imtransform(I,tform,...'bicubic','udata',udata,'vdata',vdata,'size',size(I),'fill',128);subplot(1,2,1);imshow(udata,vdata,I),axisonsubplot(1,2,2);imshow(xdata,ydata,B),axison

第20页/共34页6.2图像类型与彩色模型转换【主要内容】一、图像类型的转换1、真彩图像→索引图像2、索引图像→真彩图像3、真彩图像→灰度图像4、真彩图像→二值图像5、索引图像→灰度图像6、灰度图像→索引图像7、灰度图像→二值图像8、索引图像→二值图像9、数据矩阵→灰度图像二、彩色模型的转换1、图像的彩色模型2、彩色转换函数三、纹理映射第21页/共34页二值图像灰度图像数据矩阵索引图像真彩图像①⑦④⑧③⑨AIX,mapRGBBW②⑥⑤6.2.1图像类型的转换第22页/共34页转换类型转换函数用处①真彩图像→索引图像X=dither(RGB,map)节省存储空间,假彩色②索引图像→真彩图像RGB=ind2rgb(X,map)便于图像处理③真彩图像→灰度图像I=rgb2gray(RGB)得到亮度分布④真彩图像→二值图像BW=im2bw(RGB,level)阈值处理,筛选⑤索引图像→灰度图像I=ind2gray(X,map)Newmap=rgb2gray(map)得到亮度分布⑥灰度图像→索引图像[X,map]=gray2ind(I,n),X=grayslice(I,n)X=grayslice(I,v)伪彩色处理⑦灰度图像→二值图像BW=dither(I)BW=im2bw(I,level)阈值处理,筛选⑧索引图像→二值图像BW=im2bw(X,map,level)阈值处理,筛选⑨数据矩阵→灰度图像I=mat2gray(A,[max,min])I=mat2gray(A)产生图像第23页/共34页1、真彩图像→索引图像【格式】X=dither(RGB,map)【说明】按指定的颜色表map通过颜色抖动实现转换【输入】RGB可以是double或uint8类型【输出】X超过256色则为double类型,否则输出为uint8型【例】CLF,RGB=imread('flowers.tif');map=jet(256);X=dither(RGB,map);subplot(1,2,1);subimage(RGB);title('真彩图')subplot(1,2,2);subimage(X,map);title('索引图')第24页/共34页2、真彩图像→灰度图像【格式】I=rgb2gray(RGB)【输入】RGB可以是double或uint8类型【输出】I类型同RGB【例】CLF,RGB=imread('flowers.tif');I=rgb2gray(RGB);subplot(1,2,1);subimage(RGB);title('真彩图')subplot(1,2,2);subimage(I);title('灰度图')第25页/共34页3、数据矩阵→灰度图像【格式】1、I=mat2gray(A,[max,min])2、I=mat2gray(A)【说明】按指定的取值区间[max,min]将数据矩阵A转换为灰度图像I。如不指定区间,自动取最大区间。【输入】A为double类型【输出】I为double类型【例】CLF;I=imread('rice.tif');A=filter2(fspecial('sobel'),I);J=mat2gray(A);subplot(1,2,1);subimage(I);title('原图')subplot(1,2,2);subimage(J);title('转换图')第26页/共34页6.2.2色彩模型转换1、图像的彩色模型(1)RGB模型是色光的彩色模式,R代表红色,G代表绿色,B代表蓝色,通常所说的真彩色。(2)NTSC模型NTSC模型用于电视信号。其特点是亮度信号与色度信号相分离。一个信号能同时表示彩色图像和黑白图像。他的Y表示亮度,I表示色度,Q表示饱和度。(3)HSV模型根据人眼的视觉特性表示的颜色,H表示色调,S表示饱和度,V表示明度。(4)YCbCr模型一种彩色模型,Y表示亮度信号,Cb、Cr两个色度分量。2、彩色转换函数RGBNTSCHSVYCbCr第27页/共34页(1)RGB颜色空间转换到NTSC颜色空间【格式】YIQMAP=rgb2ntsc(RGBMAP【格式】YIQ=rgb2ntsc(RGB)【说明】表示将RGB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论