2020年图像分割技术在医学中的应用精品
版
精品好文档,推荐学习交流
数字图像处理 课程论文
班级: 姓名: 学号:
图像分割技术在医学中的应用
摘要:图像分割是图像处理和分析领域的经典难题,医学图像分割是图像分割中一个重要方面和应用领域,同时也是病变区域提
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
取、临床实验、特定组织测量以及实现三维重建的基础。在临床应用和医学研究中具有重要的研究意义。本文整体上对基于阈值选取、基于区域、基于边缘检测的图像分割三种方法进行了分析、研究和实验,总结出各个方法的优缺点,从而可以达到更好的分割医学图像的目的。本文对现有的各种图像阈值分割方法进行综述, 重点介绍了基于图像灰度直方图的阈值分割方法。
关键词:医学图像;图像分割;阈值;边缘检测;Hough变换
医学图像的组织结构复杂位置重叠,一般情况下,将一幅医学图像分为目标区域和背景区域,其中目标区域就是指病变区域或者含重要诊断信息的区域,是临床治疗的重要对象;背景区域是指医学上面认为正常的区域。医学图像分割的目的是把图像中具有特殊涵义的区域与背景区域分割开来,为后续的定量、定性的分析和处理工作打下基础。图像分割对于医学图像处理非常重要,只有准确地从图像中提取出信息,才能保证医学系统的可靠性,并为三维重建打下基础。。目前的图像分割方法有多种,为了达到更好的分割,对不同的分割任务,可采用了不同的分割方法。主要方法有基于阈值选取的图像分割、基于区域生长的图像分割和基于边缘检测的图像分割三种方法。其次阈值法是最基本的图像分割方法之一, 被应用于很多领域, 特别是在图像相对简单的生物图像处理方面得到了广泛使用,基于阈值选取的图像分割包括:灰度阈值分割、直方图阈值分割、最大熵阈值分割、二维最大熵阈值分割、局部阈值分割等方法等。
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
1.基于阈值选取的图像分割
基于阈值的方法的主要思想是通过设置某一阀值,将图像中的像素点分为不同的类,从而完成图像分割,根据使用的是图像的整体信息还是局部信息,还可以将分割方法分为局部阈值和全局阈值。基于阈值的方法中最重要的一步就是如何选取合适的阈值,简单的阈值选取方法是以图像的灰度直方图为对象,以得到的各个灰度级的概率分布密度为基础,依据某一准则选取合适的阈值,最终确定像素点的归属。选择不同的准则,将得到不同的阈值化算法。常见的阈值分割方法有最小误差法、otsu方法、迭代法、模糊阈值、最大熵法等。
1.1阈值分割的基本概念
阈值分割法是一种基于区域的图像分割技术,其基本原理是: 通过设定不同的特征阈值,把图像像素点分为若干类。常用的特征包括: 直接来自原始图像的灰度或彩色特征; 由原始灰度或彩色值变换得到的特征。设原始图像«Skip Record If...» 按照一定的准则在«Skip Record If...»中找到若干个特征值,«Skip Record If...»(其中«Skip Record If...»),将图像分割为几部分,分割后的图像为
«Skip Record If...»
一般意义下, 阈值运算可以看作是对图像中某点的灰度、该点的某种局部特性以及该点在图像中的位置的一种函数, 这种阈值函数可记作
«Skip Record If...»
式中, «Skip Record If...»是点«Skip Record If...»的灰度值;«Skip Record If...»是点«Skip Record If...»的局部邻域特性。根据对T 的不同约束,可以得到3 种不同类型的阈值, 即
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
全局阈值T=«Skip Record If...» (只与点的灰度值有关) 局部阈值T=«Skip Record If...» (与点的灰度值和该点的局部邻域特征有关)
动态阈值T=«Skip Record If...» (与点的位置、该点的灰度值和该点邻域特征有关)
图像中区域的范围常常是模糊的,因此如何选取阈值便成为区域分割中的最关键的问题。对于简单的图像,常常只出现背景和一个有意义的部分两个区域。如下图1.1.1中的“原始图像”所示:这时只需设置一个阈值,就能完成分割处理,并形成仅有两种灰度值的二值图像。
图:1.1.1 cell图像的直方图
根据上面图像中的直方图可以看出该cell图像有双峰现象,并且其两峰的谷点在50-100之间,并且接近50。我们选取T=30,T=60,T=90时分别做出这时的图像分割结果。如下图1.1.2所示
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
图1.1.2 不同阈值选取下的cell图像分割
1.2基于一维直方图的阈值分割方法
直方图是一幅图像中各像素灰度值的最基本的统计形式,而且常见的阈值分割方法基本上都是基于灰度直方图统计的搜索方法,这些方法主要可分为两类, 一类是谷点搜索法,另一类是指标最优搜索法。
若对应于图像中每一个灰度值,统计出具有该灰度值的像素数, 并据此绘出像素数- 灰度值图形,则该图形就称为图像的一维灰度直方图。传统的阈值分割
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
法常直接利用图像的一维灰度直方图进行图像分割,适用于内容不复杂、灰度分布较集中的图像这类待分割的图像通常由两个区域组成,一个区域以亮色为主,另一区域以暗色为主,相应的一维直方图呈现双峰,一峰表示物体的灰度值,另一峰表示背景的灰度值。在这类图像的分割方法中,Prewitt等人20 世纪60 年代提出的最频值法,至今仍在使用。该方法选择两峰之间谷点的灰度值作为阈值,这样可以把由于阈值选择的误差造成错误分割的影响降到最低。N. Papamar kos等人提出利用多项式拟合的方法来确定谷点,先找出灰度直方图的峰值点,再利用有理多项式来拟合灰度直方图两个峰间的区域,然后求出有理多项式的极小值,从而决定阈值。
(1) 迭代法:
通过迭代方式也可以选取阈值,该方法是利用程序自动搜寻比较合适的阈值。此阈值选取方法首先选取图像灰度范围的中值作为初始值«Skip Record If...»,把原始图像中的全部像素分为前景和背景两大类,然后分别对其进行积分并将结果取平均获取新的阈值,并按此阈值再将图像分为前景、背景两大类。如此反复迭代下去,当阈值不再发生变化,即迭代已经收敛与某个稳定的阈值时,此刻的阈值即作为最终的结果并用于对图像的分割。下面是对上述文字的数学描述:
«Skip Record If...»
式中,«Skip Record If...»为灰度级的个数;«Skip Record If...»为灰度值为«Skip Record If...»的像素点的个数。迭代一直进行到«Skip Record If...» 时结束,结束时的«Skip Record If...» 为阈值。在进行具体的程序设计时,由于阈值的迭代运算是以图像的灰度统计作为基础的,因此须首先获取图像的灰度统计分布情况。该程序执行完后将存放有灰度分布的数组作为参数
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
传递给迭代阈值函数,并通过迭代的方式计算出最终阈值。函数的半部分则利用前面计算出的阈值对图像进行分割处理。
下面图1.2.1是自行设计程序用迭代法确定阈值的方法:
图1.2.1 迭代法确定阈值
在上面的图像中的直方图可以看出该cell图像有双峰现象,并且其两峰的谷点在50-100之间,并且接近50。我们用迭代法计算出的阈值
T = 63.5012
并且通过此时阈值T=63.5012时的分割结果与图1.1中的T=30、60、90的分割结果相比较说明T= T=63.5012时的图像更精确。
(2)Otsu法
为了有效应用最频值法确定阈值,可以对图像的原始灰度直方图作适当变换, 使得波峰更尖锐,波谷更深凹。Panda和Rosenfeld提出了仅由边缘值(灰度变化率)较低的像素点构成灰度直方图的方法,使所得直方图与原始直方图相比,双峰基本保持不变,而谷变得更深。Mason等人使用边缘检测算子(如Laplacian算子、Robert算子等)对直方图加权,均匀区域中像素边缘值较低,给予较大的权,而边界邻域中像素边缘值较高,给予较小的权。
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
由Otsu 提出的最大类间方差法也是最常用的利用图像一维灰度直方图的阈值化方法之一。Otsu方法基于一种判别式测度准则,最佳阈值在该测度函数取最大时得到。假设阈值«Skip Record If...»把图像分成两类,设«Skip Record If...»表示类间方差,那么最佳阈值«Skip Record If...»满足下式
«Skip Record If...»
Otsu方法是一种自动的非参数非监督的阈值选择法,仅需要计算灰度直方图的零阶和一阶累积矩,计算简单,稳定有效。
图1.2.2是由Otsu方法得出的图像
图1.2.2 Otsu算法图像
此时:
T1 = 63
可以看出用Otsu方法计算的出的阈值与迭代方法计算出的阈值相差不大。 (3)最小误差法
最小误差法也是常用的阈值选取方法之一。通常以图像中的灰度为模式特征, 假设各模式的灰度是独立同分布的随机变量,并假设图像中待分割的模式服从一定的概率分布,则可以得到满足Bayes最小误差分类准则的分割阈值。假设图像中只有目标和背景两种模式, 先验概率分别是«Skip Record If...»和
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
«Skip Record If...»,类内灰度i 的条件分布是«Skip Record If...»和«Skip Record If...»,则根据Bayes最小误差分类准则求得的阈值t应满足:
«Skip Record If...»
根据具体图像特性给出条件分布的假设,可得到各种最小误差准则和分割算法。Gonzales等给出了等方差混合Gauss分布下的最小误差分割阈
值;PalPoisson 分布作为模式的灰度分布假设给出分割准则;薛景浩等提出了SAR图像基于灰度直方图的混合偏移Rayleigh分布下的最小误差分割算法。
(4)熵阈值分割法
20世纪80年代初人们开始考虑用信息论中熵的概念进行阈值选取,1980年Pun首先提出了最大后验熵上限法,1985年Kapur等人提出了一维最大熵阈值法,又有学者采用局部熵、条件熵、相关熵等方法来选取阈值,其中基于最大熵原则选择阈值是最重要的阈值选择方法之一。在国内,王建军等在选择最佳阈值过程中使用了相对熵。薛景浩等从目标和背景的类间差异性出发,提出一种基于最大类间交叉熵准则的阈值化分割算法,与基于最小交叉熵以及基于传统香农熵的阈值化算法相比, 表现出了良好的通用性和有效性。彭明生等基于图像的模糊性,将模糊数学理论和遗传算法结合起来,提出了利用最大模糊C组分类熵原则确定阈值的方法。
下图1.2.3所示是局部熵函数得出的结果
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
图1.2.3 局部熵图像结果
(5)分水岭算法
分水岭阈值算法和直接在最佳阈值处分割不同,它是一种特殊的自适应迭代阈值分割算法。分水岭阈值算法的主要目标是找出分水线。基本思想是:假设在每个区域最小值的位置上打一个洞,并且让水以均匀的上升速率从洞中涌出,从低到高淹没整个地形。当处在不同的汇聚盆地中的水将要会和在一起时,修建的大坝将阻止水的汇合,也就是说水只能到达大坝的顶部,处于水线的程度。这些大坝对应分水岭的分割线。
分水岭算法主要应用从背景中提取几乎一致的对象,那些在灰度级变换较小的区域的梯度值也较小。分水岭分割法与图像的梯度有很大的关系,而不是图像本身。
在MATLAB中海提供了一个分水岭算法,使用这个函数也可以对图像进行区域分割。
下图1.2.4是用这个算法对人体球状细胞进行区域分割所得到的图像
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
图1.2.4 分水岭算法分割图像
1.3基于二维直方图的分割
传统的图像阈值分割方法大都根据一维灰度直方图进行,但由于一维灰度直方图不能反映图像的局部空间信息,当图像信噪比递减时,传统方法将产生很多错误。改善的方法是采用图像的二维灰度直方图技术。在各像素点处,计算其邻域平均灰度值,由此形成一个灰度二元组«Skip Record If...»,其中«Skip Record If...»表示像素点的灰度值,«Skip Record If...»表示该点邻域的平均灰度值,设灰度二元组«Skip Record If...»出现的频数为«Skip Record If...» , 定义相应的联合概率密度为
«Skip Record If...»
其中N 为图像的像素总数, 以«Skip Record If...»,«Skip Record If...»为自变量,«Skip Record If...» 为因变量,就形成了图像的二维灰度直方图。二维灰度直方图是像素的灰度值分布及其邻域的平均灰度值分布构成的直方图,不仅反映了图像的灰度分布信息,而且还反映了邻域空间的相关信息,因此分割效果明显优于传统的一维灰度直方图阈值分割方法。
对传统的阈值选择方法,如最大类间方差法、最小误差法、最大熵法等加以推广, 可以扩展到二维灰度直方图。刘健庄等把一维Otsu阈值选择法推广到适合二维直方图的情况,同时考虑像素的灰度分布和邻域像素的平均灰度分布,在二维测度准则取最大值时得到最佳的二维矢量阈值。杨恬等又进一步改善了二
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
维Otsu阈值分割方法的分割判决的门限函数,增强抗噪性。龚坚和张毅军等分别提出了二维最大熵图像阈值分割的快速递推算法,有效提高了熵函数的计算速度。靳宏磊等根据二维灰度直方图上灰度分布的模型,对所有像素点均给予考虑,使用最小误差法,得到了二维灰度直方图上的最佳二次分割曲线,并通过实验证明了其相对于其他二维灰度直方图上的分割方法的优越性。另外,李立源等在分析图像二维灰度直方图上聚类集形状特征的基础上,证明存在其最佳一维投影,并提出了最佳一维投影分割方法及基于二维灰度直方图的Fisher线性分割方法 ,提高了分割的精度和速度。
基于二维灰度直方图的阈值分割方法在考察各象素灰度值的出现频数的同时,也考察各像素的位置及其邻域特征等空间信息,因此这种方法与基于一维灰度直方图的阈值分割方法相比具有更高的精度和鲁棒性,适用于大噪声的复杂图像的分割。当然,基于二维灰度直方图的阈值分割方法的算法更复杂,也需要耗费更多的图像处理时间。
2.区域生长法
区域生长法就是使较小的区域按照某种原则逐渐增长为大区域的过程。在区域增长法中,先是从一组“种子”点开始,将与种子点性质相似(颜色相似)的相邻像素附加到生长区域的种子的过程。区域生长法种类比较多,例如区域生长算法和分裂-合并算法。区域生长方法的特点是将图像中像素间的空间相邻关系充分利用,以达到智能分割的目的。在ITK中给出了几种基于区域分割的图像分割方法,基于连接的区域生长法、相邻区域连接法、独点连接法等,是几种各具特点的分割方法。虽然区域分割方法是一种比较简单的分割方法,它计算简单,加之,目前新的发展,使之可以完成较简单的医学图像分割。
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
当前采用的分割方法主要是区域生长活动轮廓。基于区域生长的方法是将象素按照某种特征归于不同的区域,而相邻区域具有不同的均匀性。区域生长需要先确定一个种子点,根据图像纹理特征以及种子点的特征向量空间作为标准识别同质区域。但是大量的噪声对生长过程干扰特别大,活动轮廓法特别适合于图像中区域之间的差别较大,其利用蛇模型寻找区域边界。故需要一个初始轮廓。由于超声图像一般比较模糊且含有很强的斑点噪声,故自动获得区域的初始轮廓很困难。基于分裂和合并技术的区域生长法主要分为三种,即合并、分裂及合并-分裂相结合。合并的方法是,图像首先被分成许多小的基本区域,然后根据特定的均匀性判据而合并,形成大的区域。分裂的方法是将整幅图像作为原始分割结果,只要当前的分割结果不能保证足够的均匀性,就将其分裂成四个方形区域。合并-分裂相结合的方法是将相邻且具有相似特征的区域合并,而将具有明显不均匀特征的区域进行分裂。这几种方法对图像的质量,特别是同一物体内部的灰度均匀性要求较高,否则很容易出现过度合并和过度分裂。对于医学超声图像,很少有人使用这种方法,即使使用也常与其它方法相结合。基于随机场技术的图像分割方法是利用空间区域相互作用模型,如随机场等对图像进行建模,结合一些概率论知识和模拟退火等优化方法对图像进行分割。这种方法有时易产生误分类,对纹理边界难以分割,所以在超声图像分割中的应用有待进一步的研究。
3.基于边缘检测的分割方法
在医学图像中边缘往往是图像局部特性突变的结果。突变是一个区域的结束,另一个区域的开始。边缘检测方法是依照提取出来的边缘,分割出目标区域。目前已有多种基于边缘检测的图像分割方法。
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
3.1边缘检测算子
最基本的是通过边缘检测算子来检测边缘,常用的边缘检测算子有梯度算子、高斯—拉普拉斯算子、Canny 算子。其中梯度算子是一阶导数的算子,梯度算子有以下几种:Roberts 算子、Sobel 算子、Prewitt 算子等。高斯—拉普拉斯算子是另一种常用的算子,该算子是二阶的,是一种对噪声敏感的算子,在应用中一般都是先平滑滤波再进行二阶微分;Canny 算子是在噪声情况下的一种较好的边缘检测算子。
下图3.1是是对cell图像进行5中算子的边缘检测所得的图像
图3.1 5种边缘检测算子得到的边缘图像效果
从上边的图像中可以看出canny算子的检测效果明显要优于其他算子。 3.2 Hough变换
除了边缘检测算子之外还有Hough变换。Hough变换是一种线性描述方法。它可以将图像空间中用直角坐标系表示的直线变换为极坐标空间中的点。一般将Hough变换成为线-点变换,利用Hough变换提取直线的基本原理是:把直线上的点的坐标变换到过点的直线的系数域,通过利用共线和直线相交的关
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
系,是直线的提取问题转换为计数问题。Hough变换提取直线的主要优点是受直线中的间隙和噪声影响较小。
下面是对一个图像中存在较多直线的图片中进行Hough变换时得到的结果:
图3.2.1 原始图像及Hough变换结果
图3.2.2 边缘检测结果
参考文献:
[1] 卢桂彼. 非均匀背景目标图像的分割方法.计算机工程,2004年30卷第16期
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
[2] 张春玲. 图像的阑值分割及其应用.泰山医学院学报,2006年22卷第3期
[4] 李波. 医学超声图像分割技术.中国医学物理学杂志,2005年22卷4期
[5] 王娜. 医学图像分割方法研究.价值工程,2011年第19期 [6] 范继红,张健. 医学图像分割技术仿真研究.计算机仿真,2011年28卷第12期
[7] 张晶,王黎,高晓蓉,王泽勇,周小红,彭建平. 数字图像处理中的图像分割技术及其应用.信息技术,2011年第11期
[8] 付峰,应义斌. 生物图像阈值分割方法的研究. 浙江大学学报,2003年第1期
[9] 王爱玲,叶明生,邓秋香. 图像处理技术与应用.电子工业出版社,2008年1月
[10] 于万波. 基于MATLAB的图像处理.清华大学出版社,2008年3月 [11] 龚声蓉,刘纯平,王强. 数字图像处理与分析.清华大学出版社,2006年7月
[12] 杨帆. 数字图像处理与分析.北京航空航天大学出版社,2007年10月 [13] 杨高波,杜青松. MATLAB图像/视频处理应用及实例.电子工业出版社,2010年1月
附录:文正中涉及到的程序源代码
1.1章节中基于全局阈值的分割的源代码: a=imread('cell.jpg');
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
B=rgb2gray(a); s=size(B); b=double(B); for i=1:s(1)
for j=1:s(2)
if B(i,j)>90 B(i,j)=255; end
if B(i,j)<=90 B(i,j)=0; end end end
subplot(121);imshow(a);xlabel('原始图像'); subplot(122);imshow(B);xlabel('T=90时的图像'); 1.2章节中(1)迭代法源代码: %迭代法
clc; clear;
A=imread('cell.jpg'); B=rgb2gray(A);
T=0.5*(double(min(B(:)))+double(max(B(:))));%B为最大值和最小值之和的一半
d=false; %d为逻辑变量,初值设为false
while~d %循环的意思是如果B中元素大于T,在相应位置上矩阵g的元素为1,否则为0
g=B>=T;
Tn=0.5*(mean(B(g))+mean(B(~g)));%B(g)按照非零元素位置提取出B的元素构成一列向量
d=abs(T-Tn)<0.5; T=Tn; end T
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
subplot(1,3,1);imshow(B);xlabel('灰度图像'); subplot(1,3,2);imhist(B);title('直方图'); level=T/255; %将上边所得的T作为阈值 D=im2bw(B,level);
subplot(1,3,3);imshow(D);xlabel(' 迭代法稳定输出的分割结果'); 1.1章节中(2)Otsu法源代码: a=imread('cell.jpg'); b=rgb2gray(a); subplot(121); imshow(b);
title('原始图像'); T=graythresh(b); g=im2bw(f,T); subplot(122); imshow(g);
title('Otsu方法二值化图像'); %输出graythresh算法中的阈值 T1=graythresh(b)*255
1.1章节中(4)熵阈值分割法源代码: a=imread('cell.jpg'); B=rgb2gray(a); c=entropyfilt(B);
subplot(121);imshow(a);xlabel('原始图像'); subplot(122);imshow(c,[]);xlabel('局部熵图像'); 1.1章节中(5)分水岭算法源代码: clear;
A=imread('get.jpg'); B=rgb2gray(A); subplot(121); imshow(B);
title('原始图像');
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
subplot(222); % watershed算法分割 subplot(122); L=watershed(B); imshow(L); title('分水岭');
3.1章节中边缘检测算子源代码: a=imread('cell.jpg');
b=rgb2gray(a); %获取灰度图像
subplot(2,3,1);imshow(b);xlabel('灰度图像'); b=double(b);
d1=edge(b,'canny',0.1);
subplot(2,3,2);imshow(d1);xlabel('canny算子'); d2=edge(b,'sobel',0.1);
subplot(2,3,3);imshow(d2);xlabel('sobel算子'); d3=edge(b,'prewitt',0.1);
subplot(2,3,4);imshow(d3);xlabel('prewitt算子'); d4=edge(b,'log',0.1);
subplot(2,3,5);imshow(d4);xlabel('log算子'); %罗伯特交叉梯度算子 d5=edge(b,'roberts');
subplot(2,3,6);imshow(d5);xlabel('roberts梯度算子'); 3.2章节中Hough变换源代码: A=imread('test.jpg');
I=rgb2gray(A); %转化成强度图像 BW=edge(I,'canny'); %提取边界
%hough函数,H为hough变换矩阵,T为hough变换的theta轴间隔, %R为0到图像像素个数之间的实值标量默认值都为1,下面将其改为0.5
仅供学习与交流,如有侵权请联系网站删除 谢谢14
精品好文档,推荐学习交流
[H,T,R]=hough(BW,'RhoResolution',0.5,'ThetaResolution',0.5); %显示原始图像
subplot(221);imshow(A); title(' test.jpg'); %显示Hough矩阵
subplot(212);
imshow(imadjust(mat2gray(H)),'XData',T,'YData',R,'InitialMagnification','fit');
title('Hough transform of test.jpg'); xlabel('\heta');ylabel('\\rho'); axis on;axis normal;hold on; colormap(hot);
P=houghpeaks(H,5,'threshold',ceil(0.3*max(H(:)))); lines=houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);
figure;
imshow(BW);hold on;
max_len=0;
for k=1:length(lines)
xy=[lines(k).point1;lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green');
%显示线段的开头和结尾
plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');
plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','red'); %检测最长线段的终点
len=norm(lines(k).point1-lines(k).point2);
if(len>max_len)
max_len=len; xy_long=xy; end end
仅供学习与交流,如有侵权请联系网站删除 谢谢14
因篇幅问题不能全部显示,请点此查看更多更全内容