文档视界 最新最全的文档下载
当前位置:文档视界 › 图像分割技术与MATLAB仿真

图像分割技术与MATLAB仿真

图像分割技术与MATLAB仿真
图像分割技术与MATLAB仿真

中南民族大学

毕业论文(设计)

学院: 计算机科学学院

专业: 自动化年级:2012

题目: 图像分割技术与MATLAB仿真

学生姓名: 高宇成学号:2012213353 指导教师姓名: 王黎职称: 讲师

2012年5月10日

中南民族大学本科毕业论文(设计)原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。

作者签名:年月日

目录

摘要 (1)

Abstract (1)

引言 (3)

1 图像分割技术 (3)

1.1 图像工程与图像分割 (3)

1.2 图像分割的方法分类 (4)

2 图像分割技术算法综述 (5)

2.1 基于阈值的图像分割技术 (5)

2.2边缘检测法 (5)

2.3 区域分割法 (7)

2.4 基于水平集的分割方法 (8)

2.5 分割算法对比表格 (8)

3基于水平集的图像分割 (9)

3.1 水平集方法简介 (9)

3.2 水平集方法在图像分割上的应用 (9)

3.3 仿真算法介绍 (10)

3.4 实验仿真及其结果 (11)

结论 (18)

致谢 (19)

参考文献 (19)

图像分割技术研究及MATLAB仿真

摘要:作为一项热门的计算机科学技术,图像分割技术已经在我们生活中越来越普及。顾

名思义这项技术的目的就是,将目标图像从背景图像中分离出去。由于这些被分割的图像区域在某些属性上很相近,因此图像分割与模式识别以及图像压缩编码有着密不可分的关系。完成图像分割所采用的方法各式各样,所应用的原理也不同。但他们的最终目的都是把图像中性质相似的某些区域归为一类,把性质差异明显的不同区域分割开来。通常在分割完成之后,我们就要对某些特定区域进行分析、计算、评估等操作,因而分割质量的好坏直接影响到了下一步的图像处理[1],因此图像分割是图像处理的一个关键步奏。图像分割技术在各个领域都有着及其重要的意义;在工业上有卫星遥感,工业过程控制监测等等;在医学方面,水平集的分割方法还可以通过医学成像帮助医生识别模糊的病变区域;在模式识别领域还可应用到指纹扫描、手写识别、车牌号识别等等。

本课题的研究内容是对图像分割技术的几种常用的方法进行综述和比较,并基于其中一种方法进行MATLAB仿真测试,给出性能分析比较结果。

关键字:图像分割,MA TLAB仿真,模式识别

Image Segmentation and Matlab Simulation

Abstract:Image segmentation is to image representation for the physically meaningful regional

connectivity set, namely according to the prior knowledge of target and background, we on the image of target and background of labeling and localization, then separate the object from the background. Because these segmented image regions are very similar in some properties, image segmentation is often used for pattern recognition and image understanding and image compression and coding of two major categories. Because the generated in the segmented region is a kind of image content representation, it is the image of visual analysis and pattern recognition based and segmentation results of quality of image analysis, recognition and interpretation of quality has a direct impact. Image segmentation it is according to certain features of the image (such as gray level, spectrum, texture, etc.) to a complete picture of the image is segmented into several meaningful area. These features made in a certain region of consistent or similar, and between different regions showed significantly different. Image segmentation technology in various fields have most of the field and its important significance in digital image processing, image segmentation has a wide range of applications, such as industrial automation, process control, online product inspection, image coding, document image processing, remote sensing and medical image analysis, security surveillance, as well as military, sports and other aspects. In medical image processing and analysis, image segmentation for body occurrence of three-dimensional display of the diseased organ or lesion location determination and analysis plays an effective role in counseling; in the analysis and application of road traffic conditions,

available image segmentation technique from monitoring or aerial fuzzy complex background separation to extract the target vehicle.

The research content of this paper is to review and compare several methods of medical image segmentation, and based on one of the methods to carry out MATLAB simulation test, the results of performance analysis are given.

Key word:Image segmantation;Matlab simulation;Pattern recognition

引言

数字图像技术是计算机科学技术兴起后的一项对图像进行加工处理的技术。该技术利用计算机系统的数字识别能力,把图像信息转化为数字信息,并对之进行分析、加工、处理,以满足人们的具体需求,处理过后的图像易于识别且方便理解。数字图像处理是图像技术的总称,它的分支学科很多[2]。图像分割技术就是其中的一种,它的主要目的是简化图像,确定我们所感兴趣的图像区域。图像分割技术的兴起推动了图像领域跨出了关键的一步,是图像领域进阶的一个分界点。

图像分割技术的目的就是把我们指定的目标区域从原图像中分离出来,使得下一步的操作更加简便。而图像的分割程度与我们所关注的问题紧密一致,现有的图像分割技术大抵可分为两类;第1类主要应用图像中某些区域的相似性来完成分割,如:图像区域处理;第2类主要应用图像边缘区域像素值会发生突变的性质来完成分割,如:边缘处理技术本文对当前常用的几种图像分割技术做了系统的分类,介绍了分割技术的发展状况,再此基础上对阈值分割、区域分割、边缘分割以及水平集分割的原理进行简单的介绍,然后得出每个方法的优缺点;最后根据结论得出各个方法的应用领域,适应范围并对这些方法的性能进行评估。最后基于其中一种方法实现MA TLAB软件仿真,完成对不同图像的分割,最后做出自己对这一方法进行合理性的评估并做出展望。

1 图像分割技术

1.1 图像工程与图像分割

图像是自然生物或人造生物对自然界某种现象的记录,有学者做过统计,图像中所蕴含的内容和信息占人类所获得信息的80%,图像传递的信息真实、贴切、丰富,从狭义角度来说用来提取、研究、处理图像信息的学科称为图像科学;从广义角度来说图像科学是各种视觉相关技术的总称。

把所有与图像相关的技术归结到一个整体流程框架,我们就得到了图像工程的概念。根据研究的层次和内容不同,图像工程可以被分为三个部分:图像处理、图像分析与图像理解。

[3]

图1.1 图像工程的三个层次

图像处理旨在对图像中各个元素进行人们所要求的特定的转换,转换之后得到的新图像用来进行下一步的操作和应用;图像分析主要是对图像中指定目标区域做检测与测量,依照这些测定结果来对客观信息做出分析与评判;而图像理解则是在建立在图像分析结果基础上研究各个部分之间的相关性或者是对原场景做出解释。本文重点研究的图像分割是图像处理

和图像分析之间的一项流程,它把我们所感兴趣的研究区域信息进行重点提取,这样做可以帮助我们更好地进行下一步图像分析的研究。图像分割使得图像分析和图像理解成为可能,它是图像工程中一项必不可少的环节,图像分割受到了人们广泛的重视和认可。

1.2 图像分割的方法分类

从上个世纪发展至今,图像分割的研究发展一直层出不穷,百花争芳,据不完全统计现已有上千种关于图像分割的算法被提出,而这些算法大多数都与图像的两个特性有关:相似性和不连续性。无论何种技术,都会用到两者之一或者兼之,这是图像本身的性质所决定的。基于第一种性质的分割算法有一个共同特点,即是所有的分割算法都会根据某一特定的准则来进行分割,这个准则可以是确定某种相似的性质,比如区域生长分割;也可以是确定某种划分界限的值,比如阈值分割技术,也可以是两者兼有,比如区域生长合并技术。基于第二种特性的分割算法往往会用到一个关于图像的性质,图像中某一事物区域和外界背景区域的边缘部分的灰度值会发生突变,这种突变在人体视觉上的反应就是人们会明显察觉到这个地区是一个分界区域,应用这一知识人们做出了边缘分割算法。

从分割过程的处理与决策角度来看,图像分割技术又可分为串行分割技术与并行分割技术,这种分类方法在数字科学领域十分常见,所以它们的分类依据也大致一样:串行分割技术的工作流程是依次进行的,前一工作流程得出的结果会对下一工作流程提供帮助和依据,因而也会产生影响。假如前一工作完成的不充分或者产生偏差,后面的工作效果也会大打折扣,所以这种分割方式需要保证每一步的分割流程都有较好的效果,否则会导致分割效果较差。并行分割技术中每个判定和流程都会独立的完成,不会影响其他步奏的进行。因此并行分割技术的抗噪性也比较好。根据以上介绍,可以把分割算法的分类如下:①并行边界(Parallel Boundary ,PB);②串行边界(Serial Boundary ,SB);③并行区域(Parallel Region ,PR);④串行区域(Serial Region ,SR)。

表1.1 图像分割算法分类

分类相似性(区域)不连续性(边界)

串行处理SR SB

并行处理PR PB

1.3 图像分割技术的发展

图像分割分割技术大致兴起于二十世纪七十年代,当时正是计算机科学兴起和发展的黄金时期,而计算机处理功能的扩展必然与图像处理密切相关,因此图像分割技术也引起了人们的注意。在当时人们还只是简单的运用阈值法来分割图像,这种早期的分割算法我们在下一章会提到,它的实现简单但局限性太大,所以随后慢慢被其他方法所取代。人们纷纷开始寻求一种适应范围更广的分割算法。边缘分割算法计算能力强,适应性较阈值法好,得到人们的认可,但它的抗噪性不好,尤其是区域边缘不明显时,分割效果不好;再加之区域分割技术的兴起,这种分割技术慢慢被取代。

20 世纪八十年代以后,越来越多的学者开始将模糊理论、马尔可夫模型、遗传算法理论、分形理论、神经网络、形态学理论、小波分析等研究成果运用于图像分割的研究中,取得了很大进展[4]。但是无论哪一种分割技术都无法完全适应任何一种图像,由于图像的多样性,我们也无法用某一个精确的计算式来表达图像的分割过程。

近来,有一种基于活动轮廓模型的图像分割的算法变得热门起来,这种分割算法把图像分割领域带到了一个全新的高度,它的适应范围更大,处理面更广,再加之它更接近人们的视觉活动过程,得到了广泛的应用。本文的第三章水平集分割技术,也用到了这项分割算法。在不久的将来,分割技术也会不断的推陈出新,人们对图像技术的研究也会不断攀升。

2 图像分割技术算法综述

2.1 基于阈值的图像分割技术

所谓阈值分割技术就是在实现图像分割之前人为的确定一个或几个阈值,根据图像中的每个像素点灰度值的大小来判断是属于哪一个阈值范围之间,从而把这些判断过后的点归为不同的类别,即完成的图像分割。阈值分割法通常又可分为两类:当我们所关注的对象是全部图像并且只取一个阈值时,我们称之为全局阈值分割法;相反在不同的区域取不同的阈值,每个区域进行独立分割的方法叫做局部阈值分割法。阈值分割方法依据分割算法的特点,还可以分为最大类空间方差法、直方图与直方图变换法、基于过渡区的阈值选取法等。显然这些算法的关键就是确定最优阈值,我们可以人工设置阈值,当然这需要研究者有大量的研究经验;也可以通过系统来计算最优阈值。阈值选取不合适会导致分割失败。

阈值分割法是图像分割技术发展之初最原始的一种方法,它的实现难度低,当背景图像和目标图像灰度值差异明显时,功能实现的很好。人们往往会从灰度直方图的波谷区域读取相应的阈值,如若不满足此条件,分割效果往往不尽人意,这也成为它的主要局限是。另外,它只考虑图像像素的单一值,不能结合图像的空间特性进行具体分析,所以它所受的噪声干扰也会很明显。

图2.1 基于阈值分割的图片

此图是基于阈值的分割图片,根据日常经验我们可以知道,在一副图片中离镜头远的背景往往采光不足,而离镜头较近的目标在图片上就可以清晰的反应出来。因而在黑白图片中的反应就是背景图像的灰度值很低,在阈值以下,呈现右图中的结果就是白色;而目的图像灰度值很高,超过阈值所以在右图中显示为纯黑色。这样我们可以知道原始图片的灰度值直方图是连续不间断的,而完成阈值分割以后就只显示为单纯的黑白图片,这便是阈值分割的特点。

2.2边缘检测法

边缘检测法刚刚提到的第二类分割算法。在观察一幅图像时,人们往往会通过边缘区域来判断一个具体实物的所在范围,这是因为边缘区域会给人们的视觉带来强烈刺激,当灰度值的变化非常显著的时候,我们就可以大致判断此区域的两侧是不同的物体,在数学上的表现一阶倒数存在极值或二阶导数有零点,所以通过对边缘信息的检测可以帮助我们实现对图像的分割。边缘检测方法的检测原理很简单,即图像边缘区域灰度值会发生突变,而我们可以通过检测灰度值函数的倒数来判定边缘区域,这就所谓的微分算子法。常用的一阶微分算子有:Prewitt 梯度算子、Roberts 梯度算子、Sobel 算子等;二阶微分算子有:Laplacian

算子以及高斯拉普拉斯算子(Laplacian of a Gaussian,LoG)。[5]但是我们知道图像中的噪声点的灰度值周围也会产生突变,因而噪声的对边缘检测法的干扰极大,所以在进行分割需要进行去噪处理,例如高斯去噪。此方法的优点在于边缘计算准确且快速,定位准确,但是当边缘区域不明显时,这种分割方法容易出现边缘丢失或者分割出来的图像边缘模糊等现象,无法确保边缘区域的连续性和封闭性。

图2.2 Roberts算子边缘分割图像

图2.2 Sobel算子边缘分割图像

图2.3 Prewitt算子边缘分割图像[6]

Roberts、Sobel、Prewitt算子都是常用的一阶微分算子,它们对应的算法分割出来的图像都有共同的特点,也有各自的差异。共同点就是三者都突出了原图像中的边缘部分,比如女士的帽檐、脸颊、眼眶等等这些边缘部分经过处理之后就变成了高灰度值的点,在右图中就对应为明显的白色点,这是因为系统检测到这些点的灰度值存在突变所以认定为图像边缘;而没有突变的点就转变为低灰度值的黑色。图像的不同之处在于三个算子对边缘的突出程度有差异Sobel算子略大于Prewitt算子,而这两者远大于Robert算子。这三个算法也都可以反应边缘分割法的局限性,图中区域有一处边缘模糊的地方,即女士帽檐的偏左侧区域,这个地方与背景图像的灰度值差异很小,所以在处理之后的图片中这块区域没有认定为边缘,即出现了边缘缺失。

2.3 区域分割法

区域分割的实质就是把图像中像元性质一致点的联合起来,达到联合分割区域的目的。此方法恰好弥补了阈值分割的缺点,能有效的解决分割的不连续性。区域分割方法按照不同的方法原理可以分为不同的类别,如果从全局出发,按照图像性质一致的准则来进行图像分割,划分每个像元的所属区域,这种方法叫做区域分裂的分割方法;如果从某一个像元点(种子点)出发,将属性接近的像元点连接起来的方法叫做区域生长的分割方法。把这两种方法结合起来的方法就称之为分裂-合并的方法,区域生长法的中心思想是把像元性质一致的点归为一个区域,其步奏流程是先人为的在待分割区域选取一个种子生长点,然后依照某种规则把种子点附近的某些像元依次添加到种子区域中去,最后这些性质相似的像元会自动的形成一个区域,这就达成了区域生长法的分割母的,完成这一系列程序的重点在于选取适当的生长准则。经常使用的生长准则大致如下:基于区域形状准则、基于区域内灰度分布统计性质准则、基于区域灰度差准则。分裂合并法的中心思想则恰好相反,它先把整幅图像分解成许多一致性比较高的小区域,在此之后仍然按照一定的合并准则把小区域合并成大区域,完成图像分割。

区域生长算法的优缺点很明显,它大多用于处理小型图像。因为一旦图像面积过大,该算法的计算速度会变得明显迟缓,而且需要它研究人员有很好的处理经验,去人工预先定义种子点。分裂-合并算法优点是不需要预先定义种子点,但是在分割过程中很有可能会破坏完成区域边缘。

无论是区域生长法还是分裂合并法都是一个图像动态变化的过程,其变化趋势无法用单

一的图片显示,所以这里就不给出区域分割法的图例演示。

2.4 基于水平集的分割方法

水平集方法是由Sethian和Osher于1988提出,是一种处理曲线演化的新颖的方法。该方法的中心思想就是把变化的界面曲线方程用高一维的零水平集函数来表示。以这样一种间接的方式来表达闭合曲线,可以把跟踪复杂的曲线演化过程转化成偏微分方程的数值求解问题,这样一来无论曲线是分裂还是合并,都可以在数学上有着准确的表示,这种方法极大的简化了曲线演化的过程,有利于我们研究拓扑结构复杂的空间几何体。从提出至今,人们对水平集方法的研究日臻完善,研究领域也不断拓宽,从最初的跟踪曲线到如今用来解决图像处理方面的问题,都彰显它该方法的强大之处。在这里本节只对水平集方法做一个大致的轮廓性的介绍,更多方法原理及思路在下文里做具体的介绍。

水平集方法广泛应用在医学和航空领域,有着很好的发展前景。这其中最主要的原因在于它对处理空间结构复杂的图像有着无可比拟的优越性和不可替代性,可以肯定的是,在以后的几年里这种方法会发展得更加完善,应用面更广泛。

2.5 分割算法对比表格

上一章我们已经介绍过了四种比较热门的图像分割技术,这些技术的实现原理都不相同,比如阈值分割主要基于图像各处灰度值差异不同来完成分割;边缘分割的技术支撑点来源于边缘区域灰度值会发生突变;区域分割技术则是依照某种相似性把图像中的点归为不同的类别;水平集分割也是一种新颖的方法。这一节我们以表格的形式来对比以上几种技术,讨论它们的优缺点和适应方向

表2.1 分割算法对比

阈值分割法边缘检测法区域分割法水平集法

主要思路和原理通过设定阈值来判定

所有像元类别,即实

现图像分割

利用图像中灰度值突

变来确定分割边缘,

边缘内为目标图像

把具有相似性质的像

元点归为一类,然后

进行像元合并或分割

用隐式方程表达闭

合曲面,将曲线演化

转化成求解偏微分

方程

优点简单有效,在区分不

同类别的物体时效果

明显

检测精度高,能快速

确定分割图像边缘

区域生长法算法简

单,适合分割小图像;

分割合并法不需要预

先定义种子点

算法准确,可以处理

拓扑结构复杂,空间

形状不单一的图像

缺点要求图像的灰度直方

图有明显的波峰或波

谷,对噪声敏感

由于噪声也会使灰度

值突变,所以对噪声

非常敏感

区域生长法需要人工

定义种子点,不能分

割区域面积大的图

像。分裂合并法可能

会破坏分割图像边缘

算法应用泛函和偏

微分方程的知识计

算量大,对噪声比较

敏感

根据以上图表的对比结合分析:我们可以看出,根据所分割图像的属性不同我们可以选用不用的图像分割方法:

①在一个图像中有不同类别的物体时,可以用阈值分割法来分割出不同种类的物体,然而此方法要求图像灰度直方图有明显波峰和波谷,否则分割效果差;

②当图像分割算法具有高精度,快速性的要求时,可以选用边缘分割法。具体选择何种边缘微分算子应视情况而定,例如CANNY微分算子就可以有效的改善噪声对边缘分割算法的影响,大部分的边缘分割算法需要预先做去噪处理;

③在目标图像较小时,使用区域生长法能够获得较好的效果;

④当待分割图像拓扑结构变化,外形复杂时使用水平集算法分割较好。

上诉几点已经比较明确的告诉我们各项技术的优缺点和使用范围,个人认为水平集方法的分

割手段适用面广,发展前景比较好,而且它还能适应高维空间的分割,这是其他技术所不能企及的,所以下一章我们具体研究水平集分割技术。

3基于水平集的图像分割

3.1 水平集方法简介

通常情况下,我们所认知的图像都可以看作是前景和背景内容的数据结合,图像分割的目的就是把前景提取出来,然而使用传统的方法不能处理图像轮廓线拓扑变化等等问题,因而水平集方法应运而生,该方法由Osher 和Sethian 提出,对处理拓扑结构变化的图像有着较好的效果。其核心思想是:把变化的界面曲线方程用高一维的零水平集函数来表示。以这样一种间接的方式来表达闭合曲线,可以把跟踪复杂的曲线演化过程转化成偏微分方程的数值求解问题。当水平集理论用于图像处理领域时都使用零水平集,因此我们可以做如下定义:用Ф表示n+1维(即高维函数),而零水平集可以看作是轮廓线C,C(Ф)=﹛(x,y)︱Ф(x,y)=0﹜,即轮廓线是图像上像素的集合,该集合中满足高维函数的值为 0。[7]所以,我们所要做的就是使高维函数的零水平集逼近实际的轮廓线,通过改变高维函数,我们获得了不同的零水平集和不同的轮廓线。

图3.1 零水平集及其演化

当我们了解了轮廓线的定义以后我们就很容易理解这样一个事实:任何一个复杂的物体,我们都可以通过分析它的无数个零水平集来还原它的物理形状及拓扑结构。所以水平集方法的优势之处就在于它对复杂物体图像的分割效果好于传统方法。

3.2 水平集方法在图像分割上的应用

首先我们来简单了解一下图像分割的核心思想。

所谓的图像分割,如果用曲线演变的来解释,就是在要分割的图片上,先随便绘制一条包含有分割目标的曲线,然后让这条曲线演变成一条紧紧包围着分割物的曲线,那么图像分

割的目的就达到了。而让这条曲线演变的关键就在于控制曲线上的每一个点运动的方向和速度,让它朝着分割物的边缘去移动,当曲线移动停止时,图像分割也就完成了。于是,图像分割的重点就落脚到了控制每一点的运动方向和速度,如何控制曲线的走向成为分割的关键。传统算法通常会求出曲线的参数化方程,但水平集方法所采用的是一种新的思路,它通过把曲线方程转化成高一维函数的零水平集这一做法,把曲线方程的演化变成了高维函数的偏微分方程的求解问题,这样做就会使曲线演化具体化。表面看把曲线表达成高维函数是把问题复杂化了,实际上却给我们提供了很多便利,概括如下:

1. 当曲线的速度函数连续不间断时,水平集函数始终保持连续性,那么该函数的零水平随着水平集函数的改变而改变,而这些改变即是拓扑结构变化的反应。

2. 在数学上有相应的近似算法可以实现用水平集函数的零水平集来表达曲线演化,如偏微分方程。

3. 传统曲线演化表示方法中,曲线的几何特征(曲率、法矢量)求解是一个难题,然后使用此方法就可以直接求得。

4. 水平集方法对处理高维曲线有着独特的优势,对比其他传统方法,它更容易体现其在高位空间中处理曲线演化的优越性[8]。

这里就不给出曲线演化过程在数字表达式上的表现形式,因为它涉及到偏微分方程以及泛函数的相关知识,本人能力有限不做进一步的探讨。

3.3 仿真算法介绍

本文用到的算法模型是一种几何活动轮廓模型,该算法由李纯明于提出并完善[9]。

以下为源代码:

clear all;

close all;

Img = imread('twocells.bmp'); % 读入一副图像

Img=double(Img(:,:,1));%转变图像格式

sigma=1.5; % 设置高斯滤波的参数

G=fspecial('gaussian',15,sigma);%fspecial用于预定义滤波算子,再此进行高斯滤波,参数分别是[15,1.5]

Img_smooth=conv2(Img,G,'same'); % smooth image by Gaussiin convolution

以G为模板对IMG做卷积运算,可以得到光滑过的IMG图像

[Ix,Iy]=gradient(Img_smooth);%求光滑过后的图像的水平梯度和垂直梯度

f=Ix.^2+Iy.^2;

g=1./(1+f); % edge indicator function.设置边缘检测函数

epsilon=1.5; the papramater in the definition of smoothed Dirac function

timestep=5; % time step定义时间步长

mu=0.2/timestep; % coefficient of the internal (penalizing) energy term P(\phi)

% Note: the product timestep*mu must be less than 0.25 for stability!

lambda=5; % coefficient of the weighted length term Lg(\phi)

alf=1.5; % coefficient of the weighted area term Ag(\phi);

% Note: Choose a positive(negative) alf if the initial contour is outside(inside) the object.

% define initial level set function (LSF) as -c0, 0, c0 at points outside, on

% the boundary, and inside of a region R, respectively.

[nrow, ncol]=size(Img);

c0=4;

initialLSF=c0*ones(nrow,ncol);

w=8;

initialLSF(w+1:end-w, w+1:end-w)=0; % zero level set is on the boundary of R.

% Note: this can be commented out. The intial LSF does NOT necessarily need a zero level set.

initialLSF(w+2:end-w-1, w+2: end-w-1)=-c0; % negative constant -c0 inside of R, postive constant c0 outside of R.

u=initialLSF;

figure;imagesc(Img);colormap(gray);hold on;

[c,h] = contour(u,[0 0],'r');

title('Initial contour');

% start level set evolution

for n=1:300

u=EVOLUTION(u, g ,lambda, mu, alf, epsilon, timestep, 1);

if mod(n,20)==0

pause(0.001);

imagesc(Img);colormap(gray);hold on;

[c,h] = contour(u,[0 0],'r');

iterNum=[num2str(n), ' iterations'];

title(iterNum);

hold off;

end

end

imagesc(Img);colormap(gray);hold on;

[c,h] = contour(u,[0 0],'r');

totalIterNum=[num2str(n), ' iterations'];

title(['Final contour, ', totalIterNum])[10];

3.4 实验仿真及其结果

(1)由系统给定初始化曲线

本实验在MATLAB 2012a软件下进行仿真,原图是一副像素为83x65的图片,系统自动画出初始轮廓曲线

图3.2 原图像和初始轮廓线

此时我们选用迭代次数n=50,迭代时间间隔t=0.001s即初始曲线进行50次更新,每次更新时间间隔为0.001秒,然后观察曲线的走向。

图3.3 分割过程图像

可以从图中看出曲线正在朝要分割的两个细胞靠拢,但此时的曲线并不光滑,因而可以得出结论:曲线演化还没有完成。

当迭代了100次时:

图3.4 分割过程图像

曲线已经包拢了两个细胞,但还没有分割完全。

当迭代了200次时:

图3.5 分割完成图像

分割已经大致完成,曲线已经比较光滑。我们可以看一下迭代300次是什么结果。

迭代300次:

图3.6 迭代300次分割图像

曲线几乎与200次无异,这是因为指引曲线演化的函数已经检测到了在这个区域的曲线位置具有最小的泛函能量值,如果继续迭代的话只是稍微修正曲线的边缘,使之更加平滑。到这个阶段我们就可以说分割结束了。

同样我们在换一副图也可以完成图像分割:原图像素是84x84,系统自动画出初始轮廓曲线

图3.7 分割初始图像

我们设置迭代次数n=250,每次迭代时间间隔t=0.001s;分割后的图像如下:

图3.8 分割完成图像

可以看到初始轮廓线经过演变以后已经围绕在物体周围,此时图像已经完成分割。

(2)自定义初始化曲线

实验一:

图3.9 自定义初始轮廓线图像

系统会根据我们所画的初始轨迹来拟合出一条相似度最高的初始曲线,如下图

图3.10 系统自动分配初始轮廓线

同样我们还是和上一个实验取同样的参数,即迭代次数n=300,时间间隔t=0.001s

图3.11 分割完成图像

实验二:

图3.12 自定义初始轮廓线图像保证与上一个实验具有同样的参数n=250,t=0.001s

图3.13 系统分配初始轮廓线图像

基于Matlab的彩色图像分割

用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors color = I_rgb; color(rgb_label ~= k) = 0; segmented_images{k} = color;

基于MATLAB的图像分割方法及应用

安徽财经大学 (《图像处理》课程论文) 题目:图像分割算法研究——基于分水岭分割法的彩色图像分割学院:管理科学与工程学院 专业:电子信息工程 姓名:万多荃 学号:20123712 电话: 任课教师:许晓丽 论文成绩: 2015年10月

目录 摘要 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。

本文根据图像分割原理及人眼视觉的基本理论,研究图像的彩色模型及图像分割的常用方法,比较各方法的特点,并选择合适的方法对图像进行分割。本文采用MATLAB软件对图像进行彩色坐标变换及阈值分割,计算简单,具有较高的运行效率,分割的结果是使图像更符合人眼的视觉特性,获得比较好的效果。 关键字:图像处理;图像分割;人类视觉;MATLAB 1.前言 1.1图像分割技术 图像分割技术是非常重要的图像处理技术之一,无语是在理论研究还是在实际应用中人们都非常的重视。图像分割有许多的种类和方式,一些分割运算能够直接应用于任何图像,而另外一些却只适用于特别种类的图像。图像分割技术是从图像处理技术,再到后期的图像分析的关键步骤,图像分割结果的好坏,可以说对图像的理解有直接影响。 图像数据的模糊和噪声的干扰是分割问题的两大难题。到目前为止,还没有一个完美的图像分割方法,可以根据人的意愿精确地分割任何一种图像。现实图像中景物情况各种不同,具体问题需具体分析,按照实际情况选择得当的方法。分割成果的好坏或正确与否,到现在为止,尚无一个统一的评价和判断标准,分割的好坏务必从分割的效果和现实应用的场合来判断。然而,在人类研究图像的历史长河中,仍然积累了许多经典的图像分割方法。固然这些分割方法不可以适应全部种类的图像分割,可是这些方法却是图像分割方法进一步发展的根基。实际上,当代一些分割算法恰巧是从经典的图像分割方法中产生出来的。图像分割法大致可以分为三个种:边缘检测法,阈值分割法和基于区域的图像分割法。 2研究目的 视觉是人类最高级的感知器官,所以图像在人类感知中承担着非常重要的角色,这是毋庸置疑的。 本文的主要研究目的是对图像的分割方法进行研究,选择适合本论文的设计方法,然后通过对图像的分割,以达到人眼的最佳视觉效果。 本课题主要是通过对人眼的视觉系统研究,然后选择与人眼视觉系统密切相关的颜色模型进行颜色空间模型之间的相互转换,再对图像分割方法进行比较选择合适的分割方法,通过MATLAB平台实现彩色图像分割,最后对分割后的图像进行比较来获得到最佳的视觉效果。

基于MATLAB的图像阈值分割技术

基于MATLAB 的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB 的分析。通过双峰法,迭代法以及OUTS 法三种算法来实现图像阈值分割,并且就这三种算法做了一定的分析和比较,在加椒盐的图片上同时进行三种实验,做出比较,最终得出实践结论。 关键词:图像分割 MATLAB 阈值分割 算法 引言:图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提.同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准,图像阈值分割即是其中的一种方法。 阈值分割技术因其实现简单、计算量小、性能较稳定而成为图像分割中最基本和应用最广泛的分割技术,已被应用于很多的领域,在很多图像处理系统中都是必不可少的一个环节。 1、阈值分割思想和原理 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T 进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的 设图像为f(x,y),其灰度集范围是[0,L],在0和L 之间选择一个合适的灰度阈值T ,则图像分割方法可由下式描述: 这样得到的g(x,y)是一幅二值图像。 (一)原理研究 图像阈值分割的方法有很多,在这里就其中三种方法进行研究,双峰法,迭代法,以及OUTS 法。 方法一:双峰法 T y x f T y x f y x g ≥<),(),(10){,(

部分图像分割的方法(matlab)

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

程序二: clc; clear; cd 'D:\My Documents\MATLAB' time = now; I = imread('qr4.bmp'); figure(1),imshow(I),title('p1_1.bmp'); % show the picture I2 = rgb2gray(I); figure(2),imshow(I2),title('I2.bmp'); %?D?μ??2¨ J = medfilt2(I2); figure(3),imshow(J); imwrite(J,'J.bmp'); [M N] = size(J); J1 = J(1:M/2,1:fix(N/2)); J2 = J(1:M/2,fix(N/2)+1:N); J3 = J(M/2+1:M, 1:fix( N/2)); J4 = J(M/2+1:M, fix(N/2)+1:N); % figure(4), img = J1; T1 = test_gray2bw( img ); % figure(5), img = J2; T2 = test_gray2bw( img ); % figure(6), img = J3; T3 = test_gray2bw( img ); % figure(7), img = J4; T4 = test_gray2bw( img ); T = [T1,T2;T3,T4]; figure,imshow(T) % T1 = edge(T,'sobel'); % figure,imshow(T1); % BW = edge(T,'sobel'); % f igure,imshow(BW); function [bw_img] = test_gray2bw( img ) %大津法 [row_img col_img ] = size( img ) all_pix = row_img * col_img % get probability of each pixel(????). count_pix = zeros(1,256) % pro_pix = [] for i = 1 : 1 : row_img for j = 1 : 1 : col_img count_pix(1,img(i,j)+1) = count_pix(1,img(i,j)+1) + 1 %í3??′?êy end en d pro_pix = count_pix / all_pix % choose k value; max_kesi = -1 T = 0 for k = 1 : 1 : while( i <= k ) wa = wa + pro_pix(1,i+1) %?°k??i£?????????μ??ò?è???ê£????êoí ua = ua + i * pro_pix(1,i+1) i = i + 1 end

基于Matlab的彩色图像分割

3 Matlab编程实现 3.1 Matlab编程过程 用Matlab来分割彩色图像的过程如下: 1)获取图像的RGB颜色信息。通过与用户的交互操作来提示用户输入待处理的彩色图像文件路径; 2)RGB彩色空间到lab彩色空间的转换。通过函数makecform()和applycform()来实现; 3)对ab分量进行Kmean聚类。调用函数kmeans()来实现; 4)显示分割后的各个区域。用三副图像分别来显示各个分割目标,背景用黑色表示。3.2 Matlab程序源码 %文件读取 clear; clc; file_name = input('请输入图像文件路径:','s'); I_rgb = imread(file_name); %读取文件数据 figure(); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = applycform(I_rgb, C); %进行K-mean聚类将图像分割成3个区域 ab = double(I_lab(:,:,2:3)); %取出lab空间的a分量和b分量 nrows = size(ab,1); ncols = size(ab,2); ab = reshape(ab,nrows*ncols,2); nColors = 3; %分割的区域个数为3 [cluster_idx cluster_center] = kmeans(ab,nColors,'distance','sqEuclidean','Replicates',3); %重复聚类3次 pixel_labels = reshape(cluster_idx,nrows,ncols); figure(); imshow(pixel_labels,[]), title('聚类结果'); %显示分割后的各个区域 segmented_images = cell(1,3); rgb_label = repmat(pixel_labels,[1 1 3]); for k = 1:nColors

部分图像分割的方法(matlab)

大津法: function y1=OTSU(image,th_set) image=imread('color1.bmp'); gray=rgb2gray(image);%原图像的灰度图 low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]); % subplot(224);imshow(gray);title('after adjust'); count=imhist(gray); [r,t]=size(gray); n=r*t; l=256; count=count/n;%各级灰度出现的概率 for i=2:l if count(i)~=0 st=i-1; break end end %以上循环语句实现寻找出现概率不为0的最小灰度值 for i=l:-1:1 if count(i)~=0; nd=i-1; break end end %实现找出出现概率不为0的最大灰度值 f=count(st+1:nd+1); p=st;q=nd-st;%p和分别是灰度的起始和结束值 u=0; for i=1:q; u=u+f(i)*(p+i-1); ua(i)=u; end

%计算图像的平均灰度值 for i=1:q; w(i)=sum(f(1:i)); end %计算出选择不同k的时候,A区域的概率 d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差[y,tp]=max(d);%求出最大方差对应的灰度级 th=tp+p; if thth) y1(i,j)=x1(i,j); else y1(i,j)=0; end end end %上面一段代码实现分割 % figure,imshow(y1); % title('灰度门限分割的图像');

基于MATLAB的图像分割算法研究毕业设计

基于MA TLAB的图像分割算法研究 基于MATLAB的图像分割算法研究 摘要 本文从原理和应用效果上对经典的图像分割方法如边缘检测、阈值分割技术和区域增长等进行了分析。对梯度算法中的Roberts算子、Sobel算子、Prewitt算子、拉普拉斯(Laplacian)算子、LoG(Laplacian-Gauss)算子、坎尼(Canny)算子的分割步骤、分割方式、分割准则相互比较可以看出根据坎尼(Canny)边缘算子的3个准则得出的边缘检测结果最满意。而阈值分割技术的关键在于阈值的确定,只有阈值确定好了才能有效的划分物体与背景,但这种方法只对于那些灰度分布明显,背景与物体差别大的图像的分割效果才明显。区域增长的基本思想是将具有相似性质的像素集合起来构成新区域。与此同时本文还分析了图像分割技术研究的方向。 关键词:图像处理图像分割 Abstract This article analyses the application effect to the classics image segmentation method like the edge examination, territory value division technology, and the region growth and so on.For comparing the Roberts operator, Sobel operator, Prewitt operator, the operator of Laplacian and the operator of LoG(Laplacian-Gauss),Canny operator in gradient algorithm,the step, the way and the standard of the image segmentation,we can find out the three standard of Canny edge operator the edge detection result of reaching most satisfy. And the key point of threshold segmentation lie in fixing the threshold value, it is good to have only threshold value to determine it then can be effective to divide object and background,but this kind of method is good to those gray scales,the big difference image effect between the background and obiect. The basic idea of area is to form the new region from similar nature.And also, this paper analyses the research direction of image segmentation technology at the same time. Key words: image processing image segmentation operator

两个matlab实现最大熵法图像分割程序

%两个程序,亲测可用 clear all a=imread('moon.tif'); figure,imshow(a) count=imhist(a); [m,n]=size(a); N=m*n; L=256; count=count/N;%%每一个像素的分布概率 count for i=1:L if count(i)~=0 st=i-1; break; end end st for i=L:-1:1 if count(i)~=0 nd=i-1; break; end end nd f=count(st+1:nd+1); %f是每个灰度出现的概率 size(f) E=[]; for Th=st:nd-1 %%%设定初始分割阈值为Th av1=0; av2=0; Pth=sum(count(1:Th+1)); %%%第一类的平均相对熵为 for i=0:Th av1=av1-count(i+1)/Pth*log(count(i+1)/Pth+0.00001); end %%%第二类的平均相对熵为 for i=Th+1:L-1 av2=av2-count(i+1)/(1-Pth)*log(count(i+1)/(1-Pth)+0.00001); end E(Th-st+1)=av1+av2; end position=find(E==(max(E))); th=st+position-1

for i=1:m for j=1:n if a(i,j)>th a(i,j)=255; else a(i,j)=0; end end end figure,imshow(a); %%%%%%%%%%%%%%%%%%%%%2-d 最大熵法(递推方法) %%%%%%%%%%% clear all; clc; tic a=imread('trial2_2.tiff'); figure,imshow(a); a0=double(a); [m,n]=size(a); h=1; a1=zeros(m,n); % 计算平均领域灰度的一维灰度直方图 for i=1:m for j=1:n for k=-h:h for w=-h:h; p=i+k; q=j+w; if (p<=0)|( p>m) p=i; end if (q<=0)|(q>n) q=j; end a1(i,j)=a0(p,q)+a1(i,j); end end a2(i,j)=uint8(1/9*a1(i,j)); end

基于MATLAB的图像分割处理

学号:2011 —2012学年第 1 学期 专业综合课程设计报告 课题:基于MATLAB的图像分割处理 专业:通信工程 班级: 姓名: 指导教师: 成绩: 电气工程系 2011年11月16日

课程设计任务书 学生班级学生姓名:学号: 设计课题:基于MATLAB的图像分割处理 起止日期:2011.11.06—2011.11.16 指导教师: 设计要求: 本设计对图像分割中的小波变换进行了较为详细的综述。简要介绍医学图像分割的研究目的和意义,给出医学图像分割的基本方法及步骤。在对医学图像分割问题的起源、发展和研究现状进行简要综述的基础上,介绍该领域当前的研究热点及论文的主要研究内容。

图像分割是一种重要的图像分析技术。对图像分割的研究一直是图像技术 研究中的热点和焦点。图像分割是一个很关键的图像分析技术,是由图像处理 进到图像分析的关键步骤.它的目的就是把图像中感兴趣的那部分分割出来供 大家研究、处理和分析,一直都是图像技术研究中的热点。但是由于地域的差别,图像分割一直都没有一个比较通用的算法。 而对图像进行分割的方法有多种,阈值法是其中的一种简单实用的方法。本文主要对阈值法和matlab进行研究,并将它们结合起来以提高图像分割的准确性。本文的主要研究内容如下: 1) 分析了阈值分割方法近年来的新进展,并分析了图像阈值分割中的某些经典方法,如全局阈值方法、局部阈值方法、动态阈值方法等。2)讨论了matlab的主要应用及其特点。3) 将matlab应用于阈值分割,并做实验将其实现。 本次的设计报告首先介绍了双峰法以及最大类方差自动阈值法,然后重点介绍一种基于小波变换的图像分割方法,该方法先对图像的灰度直方图进行小波多尺度变换,然后从较大的尺度系数到较小的尺度系数逐步定位出灰度阈值。最后,对这几种算法的分割效果进行了比较。实验结果表明, 本设计能够实时稳定的对目标分割提取,分割效果良好。医学图像分割是医学图像处理中的一个经典难题。图像分割能够自动或半自动描绘出医学图像中的解剖结构和其它感兴趣的区域,从而有助于医学诊断。 关键词:小波变换;图像分割;阈值

图像分割技术与MATLAB仿真知识讲解

图像分割技术与M A T L A B仿真

中南民族大学 毕业论文(设计) 学院: 计算机科学学院 专业: 自动化年级:2012 题目: 图像分割技术与MATLAB仿真 学生姓名: 高宇成学号:2012213353 指导教师姓名: 王黎职称: 讲师 2012年5月10日

中南民族大学本科毕业论文(设计)原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。 作者签名:年月日

目录 摘要 0 Abstract 0 引言 (2) 1 图像分割技术 (3) 1.1 图像工程与图像分割 (3) 1.2 图像分割的方法分类 (4) 2 图像分割技术算法综述 (5) 2.1 基于阈值的图像分割技术 (5) 2.2边缘检测法 (6) 2.3 区域分割法 (8) 2.4 基于水平集的分割方法 (9) 2.5 分割算法对比表格 (9) 3基于水平集的图像分割 (11) 3.1 水平集方法简介 (11) 3.2 水平集方法在图像分割上的应用 (12) 3.3 仿真算法介绍 (13) 3.4 实验仿真及其结果 (14) 结论 (22) 致谢 (23) 参考文献 (23)

图像分割技术研究及MATLAB仿真 摘要:作为一项热门的计算机科学技术,图像分割技术已经在我们生活中越来越普及。顾名思义这项技术的目的就是,将目标图像从背景图像中分离出去。由于这些被分割的图像区域在某些属性上很相近,因此图像分割与模式识别以及图像压缩编码有着密不可分的关系。完成图像分割所采用的方法各式各样,所应用的原理也不同。但他们的最终目的都是把图像中性质相似的某些区域归为一类,把性质差异明显的不同区域分割开来。通常在分割完成之后,我们就要对某些特定区域进行分析、计算、评估等操作,因而分割质量的好坏直接影响到了下一步的图像处理[1],因此图像分割是图像处理的一个关键步奏。图像分割技术在各个领域都有着及其重要的意义;在工业上有卫星遥感,工业过程控制监测等等;在医学方面,水平集的分割方法还可以通过医学成像帮助医生识别模糊的病变区域;在模式识别领域还可应用到指纹扫描、手写识别、车牌号识别等等。 本课题的研究内容是对图像分割技术的几种常用的方法进行综述和比较,并基于其中一种方法进行MATLAB仿真测试,给出性能分析比较结果。 关键字:图像分割,MATLAB仿真,模式识别 Image Segmentation and Matlab Simulation Abstract:Image segmentation is to image representation for the physically meaningful regional connectivity set, namely according to the prior knowledge of target and background, we on the image of target and background of labeling and localization, then separate the object from the

车牌图像分割matlab代码

图像分割matlab代码 作者:佚名发布时间:2010-1-1 阅读次数:498 字体大小: 【小】【中】【大】 % This is a program for extracting objects from an image. Written for vehicle number plate segmentation and extraction % Authors : Jeny Rajan, Chandrashekar P S % U can use attached test image for testing % input - give the image file name as input. eg :- car3.jpg clc; clear all; k=input('Enter the file name','s'); % input image; color image im=imread(k); im1=rgb2gray(im); im1=medfilt2(im1,[3 3]); %Median filtering the image to remove noise% BW = edge(im1,'sobel'); %finding edges [imx,imy]=size(BW); msk=[0 0 0 0 0; 0 1 1 1 0; 0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0;]; B=conv2(double(BW),double(msk)); %Smoothing image to reduce the number of connected components L = bwlabel(B,8);% Calculating connected components mx=max(max(L)) % There will be mx connected components.Here U can give a value between 1 and mx for L or in a loop you can extract all connected components % If you are using the attached car image, by giving 17,18,19,22,27,28 to L you can extract the number plate completely. [r,c] = find(L==17); rc = [r c]; [sx sy]=size(rc);

用matlab实现自适应图像阈值分割最大类方差法代码

%用matlab实现自适应图像阈值分割最大类方差法代码clear; warning off; SE = strel('diamond',4); BW1 = imread('cameraman.tif'); BW2 = imerode(BW1,SE); BW3 = imdilate(BW2,SE); BW4 = BW1-BW3; %rgb转灰度 if isrgb(BW4)==1 I_gray=rgb2gray(BW4); else I_gray=BW4; end figure,imshow(I_gray); I_double=double(I_gray);%转化为双精度 [wid,len]=size(I_gray); colorlevel=256; %灰度级 hist=zeros(colorlevel,1);%直方图 %threshold=128; %初始阈值 %计算直方图 for i=1:wid for j=1:len m=I_gray(i,j)+1; hist(m)=hist(m)+1; end end hist=hist/(wid*len);%直方图归一化 miuT=0; for m=1:colorlevel miuT=miuT+(m-1)*hist(m); end xigmaB2=0; for mindex=1:colorlevel threshold=mindex-1; omega1=0; omega2=0; for m=1:threshold-1 omega1=omega1+hist(m); end omega2=1-omega1; miu1=0; miu2=0; for m=1:colorlevel if m

基于MATLAB的数字图像分割的研究与实现

本科毕业论文(设计) 题目:基于MATLAB的数字图像分割的研究与实现 学院:计算机与信息工程学院学生: 学号: 专业: 年级: 完成日期:2012 年04 月 指导教师:

基于MATLAB的数字图像分割的研究与实现 摘要:视觉和听觉是我们认识和感知外部世界的主要途径,而视觉又是其中最重要的,因此要想更细致、全面地把握这些图像信息就需要对其进行必要的处理。在数字图像处理的研究和应用中很多时候我们只对图像的某些部分和特征感兴趣,此时就需要利用图像分割技术将所需的目标与图片的其他部分区分开,以供我们对图像进一步研究和分析。图像分割即通过一些必要的算法把图像中有意义的部分或特征提取出来,将图像分为若干有意义的区域,使得这些区域对应图像中的不同目标,进而能够对所感兴趣的区域进行研究。基于图像分割技术在图像处理之中的重要性,本研究在此对图像分割的一些经典算法进行了学习和对比,并通过MATLAB对其进行了实验,通过不同的算法对不同的图片进行处理,分析其优缺点,以便在进行图像分割时可以根据图片的特征选择合适的算法。 关键字:数字图像;分割;MATLAB

The Research and Implementation of Digital Image Segmentation Based on the MATLAB Abstract : Vision and auditory are the main ways which we use to understand and perceive the world outside, while vision is the most important. Therefore, it's require to process the image data to grasp them more painstaking and completely. In digital image processing of research and application we are only interested to some parts of the image and characteristic in many times, then you need to use the image segmentation technology to separate the goal and the picture for other parts for our further research and analysis of the image.Image segmentation is dividing the image into some significant areas through some necessary algorithms, then make these areas corresponding to different goals and we can do some research about the areas we are interested to. Based on the importance of image segmentation technology in image processing, I compared several classical algorithms of image segmentation. In the meanwhile, I used the MATLABto do some research and to process the various images with different algorithms so that it's convinent to find the advantages of these algorithms. Then, I can base on the characteristics of the images to choose the suitable algorithms when to make some digital image segmentation. Key words : D igital Image; Segmentation; MATLAB

数字图像灰度阈值的图像分割技术matlab

1.课程设计的目的 (1)使学生通过实验体会一些主要的分割算子对图像处理的效果,以及各 种因素对分割效果的影响 (2)使用Matlab软件进行图像的分割 (3)能够进行自行评价各主要算子在无噪声条件下和噪声条件下的分割 性能 (4)能够掌握分割条件(阈值等)的选择 (5)完成规定图像的处理并要求正确评价处理结果,能够从理论上做出合 理的解释 2.课程设计的要求 (1)能对图像文件(bmp,jpg,tiff,gif)进行打开,保存,退出等功能操作 (2)包含功能模块:图像的边缘检测(使用不同梯度算子和拉普拉斯算子)(3)封闭轮廓边界 (4)区域分割算法:阈值分割,区域生长等

3.前言 3.1图像阈值分割技术基本原理 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。简单的讲,就是在一幅图像中,把目标从背景中分离出来,以便于进一步处理。图像分割是图像处理与计算机视觉领域低层次视觉中最为基础和重要的领域之一,它是对图像进行视觉分析和模式识别的基本前提。同时它也是一个经典难题,到目前为止既不存在一种通用的图像分割方法,也不存在一种判断是否分割成功的客观标准]5[。 在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这些部分称为目标或前景(其他部分称为背景),他们一般对应图像中特定的、具有独特性质的区域。为了辨识和分析目标,需要将他们分离提取出来,在此基础上才有可能对目标进一步利用。图像分割就是指把图像分成格局特性的区域并提取出感兴趣目标的技术和过程。这里特性可以是象素的灰度、颜色、纹理等,预先定义的目标可以对应单个区域,也可以对应多个区域。现有的图像分割算法有:阈值分割、边缘检测和区域提取法。本文着重研究基于阈值法的图像分割技术。 若图像中目标和背景具有不同的灰度集合:目标灰度集合与背景灰度集合,且两个灰度集合可用一个灰度级阈值T进行分割。这样就可以用阈值分割灰度级的方法在图像中分割出目标区域与背景区域,这种方法称为灰度阈值分割方法。 在物体与背景有较强的对比度的图像中,此种方法应用特别有效。比如说物体内部灰度分布均匀一致,背景在另一个灰度级上也分布均匀,这时利用阈值可以将目标与背景分割得很好。如果目标和背景的差别是某些其他特征而不是灰度特征时,那么先将这些特征差别转化为灰度差别,然后再应用阈值分割方法进行处理,这样使用阈值分割技术也可能是有效的

基于某matlab车牌地定位与分割识别程序

基于Matlab的车牌定位与分割 经典算法 I=imread('car.jpg'); %读取图像 figure(); subplot(3,2,1),imshow(I), title('原始图像'); I1=rgb2gray(I);%转化为灰度图像 subplot(3,2,2),imshow(I1),title('灰度图像'); I2=edge(I1,'robert',0.09,'both');%采用robert算子进行边缘检测

subplot(3,2,3),imshow(I2),title('边缘检测后图像'); se=[1;1;1]; %线型结构元素 I3=imerode(I2,se); %腐蚀图像 subplot(3,2,4),imshow(I3),title('腐蚀后边缘图像'); se=strel('rectangle',[25,25]); 矩形结构元素 I4=imclose(I3,se);%图像聚类、填充图像subplot(3,2,5),imshow(I4),title('填充后图像');

I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I5),title('形态滤波后图像'); [y,x,z]=size(I5); I6=double(I5); Y1=zeros(y,1); for i=1:y for j=1:x

if(I6(i,j,1)==1) Y1(i,1)= Y1(i,1)+1; end end end [temp MaxY]=max(Y1); figure(); subplot(3,2,1),plot(0:y-1,Y1),title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素'); %求的车牌的行起始位置和终止位置 PY1=MaxY; while ((Y1(PY1,1)>=50)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY; while ((Y1(PY2,1)>=50)&&(PY2

MATLAB 软件使用简介 轮廓线提取 实验2 图像轮廓线提取技术 实验3 RGB向量空间中的图像分割技术 实

MATLAB 软件使用简介 MATLAB 是一个功能强大的数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。MATLAB自1984年由美国的MathWorks公司推向市场,现已成为国际最优秀的科技应用软件之一。 一、MATLAB 的工作界面 启动MATLAB后, 出现MATLAB命令窗口,空白区域是MATLAB 的工作区, 在此可输入和执行命令。 二、 MATLAB 操作的注意事项 ●在工作区输入MATLAB命令后, 按下Enter键才能执行命令。 ●MATLAB 是区分字母大小写的。 ●如果不想显示结果,只要在所输入命令的后面加上一个分号“;”即可。 如:x= 2 + 3↙ x=5 x = 2 + 3 ; ↙不显示结果5 ●如果一个表达式一行写不下,可以在行尾键入“...”来换行。 如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5) ... -5+1/2-567 ●命令行与M文件中的百分号“%”标明注释。 三、MATLAB的变量与表达式 ●MATLAB的变量名 MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字。应该注意不要用MATLAB中的内部函数或命令名作为变量名。列出当前工作空间中的变量命令为: who 将内存中的当前变量以简单形式列出; whos 列出当前内存变量的名称、大小、类型等信息;

clear 清除内存中的所有变量与函数。 ● MATLAB 常用的预定义变量 ans :保存计算结果的缺省变量;Inf 或inf :无穷大; i 或j pi :圆周率π。 ● MATLAB 的运算符 数学运算符:+,-,*, \(左除), / (右除) , ^ (乘幂) 关系运算符:<, >, <=, >=, = =(等于), ~= (不等于) 逻辑运算符:&(逻辑与), |( 逻辑或), ~( 逻辑非) ● MATLAB 的表达式及语句 表达式由运算符、函数、变量名和数字组成的式子。MATLAB 语句由变量、表达式及MATLAB 命令组成,用户输入的语句由MATLAB 系统解释运行。MATLAB 语句的2种最常见的形式为: 形式1:表达式 形式2:变量=表达式 在第一种形式中,表达式运算后产生的结果如果为数值类型,系统自动赋值给变量ans ,并显示在屏幕上。 例1:用两种形式计算3 6sin 5e ++π算术运算结果。 解:形式1: 5^6+sin(pi)+exp(3) ↙ ans = 1.5645e+004 形式2: a=5^6+sin(pi)+exp(3) ↙ a = 1.5645e+004 例2:已知矩阵 ?? ? ???=???? ??=22 11 ,2121B A ,对它们做简单的关系与逻辑运算 解:A=[1,2;1,2]; ↙ B=[1,1;2,2]; ↙ C=(A

相关文档
相关文档 最新文档