基于MATLAB的医学图像处理.docx
- 文档编号:26668303
- 上传时间:2023-06-21
- 格式:DOCX
- 页数:42
- 大小:553.35KB
基于MATLAB的医学图像处理.docx
《基于MATLAB的医学图像处理.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的医学图像处理.docx(42页珍藏版)》请在冰豆网上搜索。
基于MATLAB的医学图像处理
届别2012届
学号5
毕业设计(论文)
基于MATLAB的医学图像处理
姓 名唐涛
系别、专业计算机科学系、通信工程专业
导师姓名、职称朱卫平、副教授
完成时间2012年5月1日
摘要
随着人民的生活水平不断提高,人们越来越关注自身健康,提早、准确地发现疾病并予以与时地治疗,不但可以挽回病人的生命、减轻病人痛苦,还可以减轻病人的经济负担。
医学影像技术以高效、经济、无创等优点在医疗活动中得到广泛应用。
医学图像已经成为现代医学不可或缺的一部分,它的质量直接关系到医生诊断和治疗的准确性。
然而,有时获得的医学图像并不是很理想,不能很好地突出病灶部位的信息,这就容易造成医生的误诊或漏诊。
因此,对医学图像进行适当的增强处理,使其更能清晰、准确地反映出病灶是非常必要的。
本文首先详细描述了MATLAB对医学图像处理的工作原理,指出了各种图像处理的特点和适用围,并对图像锐化处理进行了改进,使图像增强的效果更好。
然后,用MATLAB对医学图像处理进行了调试运行。
最后,对本课题的研究进行了总结和展望,指出了本课题的成果和不足,指明了改进的方向。
医学图像经过图像处理以后,图像质量得到了改善,图像细节更加突出,减少了误诊和漏诊的概率。
关键词:
MATLAB;医学图像处理;图像处理;图像增强
ABSTRACT
Withthecontinuousimprovementofpeople'slivingstandards,peopleareincreasinglyconcernedabouttheirhealth,earlyandaccuratedetectionofdiseasesandbetimelytreatment,cannotonlyrestorethepatient'slife,reducepatientpain,canalsoreducetheeconomicburdenonthepatient.Medicalimagingtechnologyhasbeenwidelyusedinmedicalactivitiestotheadvantagesofefficient,economical,non-invasive.Medicalimageshasbecomeanindispensablepartofmodernmedicine,itsqualityisdirectlyrelatedtotheaccuracyofthedoctor'sdiagnosisandtreatment.However,sometimesthemedicalimageisnotideal,canhighlighttheinformationofthelesionsite,whichislikelytocausethedoctormisdiagnosed.Therefore,theappropriateenhancementofmedicalimages,tomakeitmoreclearandaccuratelyreflectthelesionisverynecessary.Thisarticlefirstdetailedstudyofthemedicalimageprocessingworks,pointedoutthecharacteristicsandscopeofthevariousimageprocessingandimagesharpeningtoimprove,betterimageenhancement.Then,themedicalimageprocessingusingMATLABdebuggingrun.Finally,researchonthistopicsummaryandoutlook,andpointedouttheachievementsandshortcomingsofthissubject,andpointedoutthedirectionofimprovement.Afterthemedicalimageafterimageprocessing,imagequalityhasbeenimproved,moreimagedetail,reducingtheprobabilityofmisdiagnosisandmisseddiagnosis
KEYWORDS:
MATLAB;medicalimageprocessing;imageprocessing;imageenhancement
第1章绪言
1.1课题背景
图像处理技术起源于20世纪20年代,至今已有90多年的历史,从最初的简单处理到现在在医学、工程学、计算机科学、信息科学、统计学、生物学、等各领域的应用,给人类带来了巨大的经济和社会效益,不久的将来会有更深入的发展与应用,成为科学研究、社会生产与人类生活不可缺少的强有力工具。
早期的图像处理主要是为了改善图像的质量。
它以人为对象,来改善人的视觉效果。
图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。
首次获得实际成功应用的是美国喷气推进实验室。
他们对航天探测器徘徊者7号在1964年发回的几千月球照片使用了图像处理技术,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。
随后又对探测飞船发回的近十万照片进行更为复杂的图像处理,以致获得了月球的地形图、彩色图,获得了非凡的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门科学的诞生。
数字图像处理技术取得的另一个巨大成就就是在医学上获得的成果。
1972年英国EMI公司工程师发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT(ComputerTomograph)。
CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。
1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类作出了划时代的贡献。
医学图像处理从根本上改变了医务人员进行诊断的传统方式。
医学上的诊断很多时候需要借助对于医疗图像的判断来作为依据,比如CT、X光、B超等医学图像,但有的拍片没有达到标准要求的清晰度,往往造成重拍或诊断结果的不准确。
实践证明,充分地利用这些技术可以提高诊断的正确性和准确性,提高诊断效率,降低医疗成本,可以更加充分地发挥各种医疗设备的功能。
而且,随着数字化、智能化进程的深入,医学图像处理技术在医疗卫生领域将会有更加广阔的应用前景。
1.2本文研究目的和意义
医学图像处理技术由于与具体的应用密切相关,因此每个研究人员介入的角度与采用的研究方法和设计策略也各不一样,但都是围绕着实现图像处理的各种基本特征进行设计,这也决定了医学图像处理技术研究成果的多样性与不完善性,仍有许多技术问题需要解决。
同时,医学图像处理发展到今天,还是没有形成完整的理论体系,因而对研究人员来说这是一个挑战性的课题。
由于目前国际上的医学图像处理尚未形成一个统一的标准,许多技术难题需要研究医学图像处理者的突破,该技术必须有其优越性、通用性和有效性并得到大家的一至认同也是一项艰巨的任务。
本论文研究基于MATLAB医学图像处理的目的是通过用MATLAB对医学界的图像处理使这些图像变得更清晰,使医生更容易诊断和治疗病情。
数字图像处理在医学界领域的应用是目前的热点,所以本论文研究基于MATLAB的医学图像处理具有重要意义。
1.3本文主要研究工作
MATLAB是集数值分析、矩阵运算、信号处理和图形显示于一体的高性能数学软件,将其强大的计算功能实现应用系统的无缝集成,对于有效缩短开发周期、优化系统性能是十分有意义的,那将大提高编程者的工作效率。
本文介绍操作MATLAB的方法。
MATLAB作为自动化服务器,在进行Windows编程中,充分发挥MATLAB在图形图像处理等方面的优势,论文的具体结够如下:
第一章主要介绍本文的研究背景与意义目的。
第二章具体介绍几种实现MATLAB调用设计原理与编程方法。
第三章详细介绍本文中要实现的几种图像处理功能以与实现原理。
第四章总结。
第2章MATLAB技术
2.1调用程序设计原理
在控制器中创建和获取自动化对象的一般过程
一、初始化并创建一个自动化对象,创建后,可以在代码中使用对象变量引用的对象。
二、操作方法和属性;获取对象方法和信息,激活属性和方法。
三、完成代码编写后释放对象。
四、BSTRExecute([in]BSTRCommand)
此函数以命令字符串为MATLAB参数,将其运行结果以字符串返回。
所有在MATLAB命令窗口键入的可执行的命令行都可在此使用,这样,我们就能在代码中使用命令行,象在MATLAB窗口中一样自如。
五、VOIDGetFullMatix([in]BSTRName,[in]BSTRWorkspace,
[inout]SAFEARRAY(double)*Pr,
[inout]SAFEARRAY(double)*pi)
该函数从指定的MATLAB工作空间中获取一维或二维数组。
其中,Name是提取数组的名称,Workspace表示包含数组的工作空间,一般指定为“base”,即MATLAB默认工作空间。
Pr和Pi分别是包含所提取数组的实部和虚部。
六、VOIDGetFullMatrix([in]BSTRName,[in]BSTRWorkspace,
[inout]SAFEARRAY(double)*pr
[inout]SAFEAPRAY(double).pi)
该函数向指定的MATLAB工作空间中设置一维或二维数组。
其中,Name是设置输入数组的名称,其它同前。
七、VOIDMinimizeConnandWindow()
该函数将未最小化的MATLAB窗口最小化。
八、VOIDMaximizeConnandWindow()
该函数将未最大化的MATLAB窗口最大化。
九、VOIDQuit()
该函数关闭并退出MATLAB。
2.2调用MATLAB程序的实现
2.2.1图片的缩放处理
图像缩放(imagescaling)是指对数字图像的大小进行调整的过程。
对图像的缩放可以直接调用MATLAB工具箱函数imresize[1]来进行图像的缩放处理。
常用调用格式为:
B=imresize(A,m,method)
其中A表示要进行缩放处理的图像;m表示放大倍数,m必须大于0,如果m>1则表示对图像进行放大处理,如果m<1则表示对图像进行缩小处理;method表示对图像处理的插值算法,有三个可选值:
‘nearest’、‘bilinear’和‘bicubic’分别表示最近邻插值,双线性插值,双三次卷积法,默认值为‘nearest’。
[2]
此函数采用bicubic方法对图像I进行2倍的放大。
2.2.2图片的旋转处理
图像的旋转处理是指对图像的水平垂直方向进行调整的过程。
对图像的旋转处理可以调用MATLAB的图像工具箱函数imrotate来进行旋转处理,此函数采用bicubic方法对图像I进行逆时针180度方向的旋转。
转处理可以调用MATLAB的图像工具箱函数imrotate来进行旋转处理。
常用调用格式为:
B=imrotate(A,angle,method)
其中A表示要进行旋转处理的图像;“angle”表示为要旋转的角度数,如果angle大于0,表示对图像进行逆时针旋转,若angle小于0则表示对图像进行顺时针旋转,“method”表示对图像处理的插值算法,同上。
默认值为‘nearest’。
2.2.3图像的负片效果
在医学图像中,为了较好显示病变区域的边缘脉络或者病变区域大小,常常对图像进行负片显示,从而达到更好的观测效果。
2.2.4图像的剪切处理
在进行图像处理时,有时只要对图像中某个特定区域或感兴趣的区域进行处理,并不需要对整个图像进行处理。
为此我们可以将我们感兴趣的图像区域先剪切出来,再对图像进行处理,不仅可以收到良好的效果而且可以节约图像存储空间大小。
2.2.5图像的灰度变换
灰度变换是图像增强的另一种重要手段,它可使用权图像动态围加大,使图像对比度扩展,图像更加清晰,特征更加明显。
2.2.6图像的对比度增强
在图像处理中,我们可以将一幅低灰度值图像的灰度值调整到一个指定的围。
在MATLAB图像处理函数中对数变换常用来扩展低值灰度,压缩高值灰度,这样可以使低值灰度的图像细节更容易看清。
MATLAB中对数变换的表达式[3]为:
f=im2double(I);
g=log(1+double(f));
imshow(g)
在对图像进行对数变换时,首先要将图像转换为双精度图像,这样在对数变换超过整型围的元素不会被截断,且小数部分不会四舍五入,则输出图像具有更高的精度。
2.2.7图像显示直方图
图像直方图是一种显示索引图像或灰度图像亮度分布图形。
用imhist函数创建图像直方图。
该图首先将数据分成N个等间距的条形,每个条形表示一个数据围,然后计算落在这个围像素的个数。
例如下面的命令显示一个心脏图像和一个直方图。
x=-5:
0.1:
5;
y=randn(1000,1);
Hist(y,x)
如图所示:
图2-1灰度图像与其直方图
2.2.8图像直方图均衡化
直方图均衡化是一种常用的灰度增强算法,是将原图像的直方图经过变换函数修整为均匀直方图,然后按均衡后的直方图修整原图像。
2.2.9图像消噪
数字图像中往往存在各种类型的噪声。
产生噪声的途径可以有几各种,与生成图像的方法有关。
如:
一、如果图像是用照片扫描得到的,则胶卷上的灰尘是噪声源。
胶卷损坏、扫描操作中都可以引起噪声。
二、如果图像直接来源于数字设备,则获取数据的设备可以引起噪声。
三、图像数据的电子传输可以引起噪声。
工具箱中提供了多个不同的方法来删除和减少图像中的噪声。
不同方法对于不同类型的噪声具有更好的效果。
可用的方法包括:
(1)线性滤波
(2)中值滤波
(3)自适应滤波
常用的滤波器为中值滤波器。
中值滤波器对异常值的敏感性比均值的小,所以,中值滤波器可以在不减小图像对比度的情况下剔除这些异常值。
在MATLAB工具箱中medfilt2函数实现了中值滤波。
2.2.10图像边缘检测
图像边缘对图像识别和计算机分析十分有用,边缘能勾画出目标物体,使观察者一目了然;边缘蕴含了丰富的在信息(如方向、阶跃性质、形状等),是图像识别中重要的图像特征之一。
2.2.11图像平滑处理
图像平滑主要目的是减少图像噪声。
图像噪声来自于多方面,有来自于系统外部的干扰,也有来自于系统部的干扰。
实际获得的图像都因受到干扰而含有噪声,噪声产生的原因决定了噪声分布的特性与与图像信号的关系。
减少噪声的方法可以在空间域或在频率域处理,基本方法就是求像素的平均值吉中值;在频域中则运用低通滤波技术[4]。
图像经过傅立叶变换以后,噪声频谱一般位于空间频率较高的区域,而图像本身的频率分量则处于空间频率较低的区域,因此可以通过低通滤波的方法,使高频万分受到掏,而使低频成分顺利通过,从而实现图像的平滑。
低通滤波可以在空间域和频域中进行。
在此主要介绍巴特沃斯低通滤波器。
巴特沃斯低通滤波器又称为最大平坦滤波器。
它的通带与阻带之间没有明显的不连续性,因此它的空域响应没有“振铃”现象发生,模糊程度减少。
D0是截止频率;n为阶数,取正整数,控制曲线的形状。
由于巴特沃斯滤波器转移曲线较平滑,没有振铃效应,故图像的模糊将减少。
一般说,常采用下降到H(u,v)最大值的
那一点为低通滤波器的截止频率点。
MATLAB提供的图像平滑函数conv2(二维卷积算法)。
具体调用格式为:
I=imread(‘xzt.png’);
I1=imnoise(I,’salt&pepper’,0.05);
I2=double(I1)/255;
H1=[1/91/91/9;1/91/91/9;1/91/91/9];
J1=conv2(I2,h1,’same’);imshow(J1)
2.12图像锐化处理
图像在传输和变换过程中会受到各种干扰而退化,比较典型的就是图像模糊,图像锐化的目的就是使边缘和轮廓线模糊的图像变得清晰,并使其细节清晰。
第3章医学图像处理的具体过程
3.1图像旋转的MATLAB实现
在图像处理中,有时需要将图像旋转以获得更好的观测角度,所以我们有必要在系统中添加图像旋转功能。
程序代码[5]如下:
a=imread('C:
\Users\zouyifeng\Desktop\论文图片\xzt.jpg');
imshow(a);
b=a(:
:
1);
imshow(flipud(b));
测试结果如下:
图3-1
图3-2图像旋转180度前后对比
3.2图像剪切的MATLAB实现
对图像的剪切处理可以调用MATLAB的图像工具箱函数”imcrop”来进行旋转处理。
调用格式如下:
I2=imcrop(I,rect)
其中I为进行剪切处理的图像,rect表示两个顶点坐标[(Xmin,Ymin),(Xmax,Ymax)],剪切后的图像大小为两顶点之间的矩形面积。
程序代码如下:
I=imread('C:
\Users\zouyifeng\Desktop\论文图片\xzt.jpg');
imshow(I);
J=imcrop;
figure,imshow(J)
测试结果如下:
图3-3图像剪切前后对比
3.3图像负片效果的MATLAB实现
在MATLAB的图像工具箱中有imcomplement函数可以对图像直接进行负片效果处理[9]。
调用格式如下:
IM2=imcomplement(IM)
其中IM表示要进行负片处理的图像,IM2表示处理后的图像。
图像负片效果可以帮助我们在大片黑色区域中容易观察白色或灰色细节。
程序代码如下:
I=imread('C:
\Users\zouyifeng\Desktop\论文图片\shou.jpg');
switchclass(I)
case'uint8'
m=2^8-1;
I1=m-I;
case'uint16'
m=2^16-1;
I1=m-I;
case'double'
m=max(I(:
));
I1=m-I;
end
figure;
subplot(1,2,1);imshow(I);title('OriginImage');
subplot(1,2,2);imshow(I1);title('TransferImage');
测试结果如下:
图3-4图像负片效果对比
3.4灰度变换的MATLAB实现
一般成像系统只具有一定的亮度响应围,常出现对比度不足的弊病,使用权人眼观看图像时视觉效果很差;另外,在某些情况下,需要将图像的灰度级整个围或者其中的某一段扩展或压缩到记录器件输入灰度动态围之。
MATLAB图像处理工具箱中提供的imadjust函数,可以实现图像的灰度变换,使对比度增强[6]。
其语法格式为:
J=imadjust(I,[low,high],[bottom,top],gamma)
其功能是:
返回图像I经过直方图调整后的图像J。
[low,high]为原图像中要变换的灰度围,[bottom,top]指定变换后的灰度围,两者的默认值均为[0,1]。
Gamma为矫正值,其取值决定了输入图像到输出图像的灰度映射方式,即决定了增强灰度还是增强高灰度。
如果gamma等于1时,为线性变换;如果gamma小于1时,那么映射将会对图像的像素值加权,使输出像素灰度值比原来大;如果gamma大于1时,那么映射加权后的灰度值比原来小。
MATLAB图像处理工具箱中提供的imadjust函数,可以实现图像的灰度变换,使对比度增强。
其语法格式为:
J=imadjust(I,[0,0.2],[0.5,1])
其功能是:
返回图像I经过直方图调整后的图像J。
将图像的低灰度级围映射到高灰度级去,从而可以更清晰观察低灰度区域细节。
程序代码如下:
x=imread('C:
\Users\hujun\Desktop\论文图片\shou.jpg');%读入一幅图片
y=255-x;%转化为反色图像
imshow(y)%显示反色图像
图3-5
图3-6图像灰度变换前后对比
3.5直方图均衡化的MATLAB实现
研究直方图均衡化,为了研究方便,首先将直方图归一化,即让原图像灰度围[Z1,Zk]归一化为[01]。
设其中任一灰度级Z归一化为r,变换后图像的任一灰度级Z‘归一化为s,显然r、s应当满足:
因此直方图修正就是对下列公式的计算过程:
式中T(r)为变换函数,它必须满足下列条件[7]:
1.T(r)在0≤r≤1区间是单值函数,且单调增加;
2.T(r)在0≤r≤1满足0≤T(r)≤1。
在直方图均衡化时,有
这里L为均衡化后灰度变化围,归一化表示时L=1,则
,有
,即:
两边取积分得:
这就是所求的变换函数,表明变换函数T(r)是原图像的累计分布函数,因此只要知道原图像的概率密度就能很容易地确定变换函数。
将上述结论推广到离散的情况。
设一幅图像总像素为n,共分L个灰度级,nk代表第k个灰度级rk出现的频数(像素数),则第k灰度级出现的概率为:
此时变换函数可以表示为
其反变换函数为
因此,根据原图像的直方图统计值就可算出均衡后各像素的灰度值。
MATLAB图像处理工具箱提供了用于直方图均衡化的函数Histeq。
Histeq语法格式为:
J=histeq(I,n)
其功能是:
指定直方图均衡化后的灰度级数n,默认值为64。
代码如下:
I=imread('C:
\Users\zouyifeng\Desktop\论文图片\shou.jpg');
I=rgb2gray(I);
J=histeq(I);
subplot(221);imshow(I);
subplot(222);imshow(J);
imwrite(I,'C:
\Users\zouyifeng\Desktop\论文图片\shou.tif')
imwrite(J,'C:
\Users\zouyifeng\Desktop\论文图片\shou.tif')
subplot(223);imhist(I,64)
subplot(224);imhist(J,64)
效果图如下:
图3-7图像直方图均衡化前后对比
3.6锐化效果的MATLAB实现
锐化技术可以在空间域是进行,常用的方法是对图像进行微分处理,也可以在频域中运用高通滤波技术处理。
但要注意的是,能够进行锐化处理的图像必须要求有较高的信噪比,否则,图像锐化后,信噪比更低。
因为锐化将使噪声受到比信号还强的增强,故必须小心处理。
一般是先去除或减轻干扰噪声后,才能进行锐化处理。
梯度算子和拉普拉斯算子就是满足要求的线性微分算子,它们是常用和图像锐化运算方法。
这里主要介绍梯度算子[8]
设图像为f(x,y),它在点(x,y)处的梯度是一个矢量G[f(x,y)],定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MATLAB 医学 图像 处理