[摘要]:图像分割是一种重要的数字图像处理技术。本文首先介绍了图像分割技术,其次总结了目前图像分割技术中所用到的阈值、边缘检测、区域提取等方法以及分水岭算法。针对各种阈值分割算法,本文在最后做了详细的研究,并给出了相应的MATLAB程序源代码。

[关键词]:数字图像处理;图像分割;阈值;算法

Research onlgorithm

Abstract:ImageIn thisthesis, thedigital image processing technique will be illustrated in the first place. Besides, it summarizes the method of image segmentation, such as threshold,edge detection, region extraction, andwatershedalgorithm. Last but not least, it makes a study of variousthresholdimagesegmentation algorithms. Meanwhile, the code of MATLAB will be showed.

Key words:DigitalImageProcessingTechnique;Image Segmentation;Threshold; Algorithm

引言

随着科学技术的发展,人们对信息处理和信息交流的要求越来越高,最典型的表现是手机及相关数码产品的更新换代速度加快。图像信息具有直观、形象、易懂和信息量大等特点,因此它是人们日常生活、生产中接触最多的信息种类之一。正是因为图像所带给人们的直观信息的特点,使得数字图像处理技术随着计算机技术、多媒体技术的发展取得了长足的进步。

在图像分析中,通常需要将关心的目标从图像中提取出来,这种从图像中将某个区域与其他部分进行分离并提取出来的处理,就是图像分割。因为图像分割实际上就是区分图像中的“前景目标”和“背景”,所以通常又称之为图像的二值化处理。图像分割是图像处理中的一项关键技术,自20世纪70年代起一直受到人们的高度重视,至今已提出上千种分割算法,但因尚无通用的分割理论,现提出的分割算法大都是针对具体问题的,并没有一种适合所有图像的通用分割算法。另外,还没有制定出选择适用分割算法的标准,这给图像分割技术的应用带来许多实际问题。最近几年又出现了许多新思路、新方法或改进算法。总的来说,图像分割是图像识别和图像分析的基本前提步骤,图像分割的质量好坏直接影响后续图像处理的效果,甚至决定成败。因此,图像分割在数字图像处理技术中占有非常重要的地位。

1.图像分割概述

1.1.图像分割的定义

图像分割时指将一副图像分解为若干互不交叠的、有意义的、具有相同性质的区域。好的图像分割应具备以下特征:

⑴ 分割出来的各个区域对某种特性(例如灰度和纹理)而言具有相似性,区域内部是连通的且没有过多小孔

⑵ 相似区域对分割所依据的性质有明显的差异

⑶ 区域边界是明确的

图像分割更形式化的定义如下:令

表示图像,

表示具有相同性质的谓词,图像分割把

分解成

个区域

,满足:

Ф,

条件⑴表明分割区域要覆盖整个图像且各区域互不重叠,条件⑵表明每一个区域都具有相同的性质,条件⑶表明相邻的两个区域性质相异不能合并为一个区域。

实际的图像处理和分析都是面向某种具体应用的,所以上述条件中的各种关系也要视具体情况而定。目前,还没有一种通用的方法可以很好的兼顾这些约束条件,也没有一种通用的方法可以完成不同的图像分割任务。原因在于实际的图像时千差万别的,还有一个重要原因在于图像数据质量的下降,包括图像在获取和传输过程引入的各种噪声以及光照不均与等因素。到目前为止,对图像分割的好坏和评价还没有统一的准则。因此,图像分割使图像分析和计算机视觉中的经典难题。至今,提出的分割算法已有上千种,每年还有不少新算法出现。这些算法的实现方式各不相同,然而大都基于图像在像素级的两个性质:不连续性和相似性。属于同一目标的区域一般具有相似性,而不同区域在边界出现不连续性。

1.2.图像分割的方法

图像分割方法依照分割时所依据的图像特性不同,大致可以分为四大类。第一类是阈值方法,这种方法是根据图像灰度值得分布特性确定某个阈值来进行图像分割的。第二类为边缘检测方法,这类方法是通过检测出封闭某个区域的边界来进行图像分割的。通俗地讲,这类方法实际上是沿着闭合的边缘线将其包围的区域剪切出来。第三类方法是区域提取方法,这类方法的特点是根据特定区域与其他背景区域特性上的不同来进行图像分割的。另外,还有一种基于形态学的分水岭算法。

1.2.1.阈值方法

所谓阈值分割方法就是确定某个阈值

,根据图像中每个像素的灰度值大小或小于该阈值

,来进行图像分割。阈值方法的数学模型如下:

设原图像为

,经过分割处理后的图像为

为二值图像,则有:

根据上式可知,阈值方法的核心就是阈值

的确定方法。

1.2.2.边缘检测方法

边缘检测技术对于处理数字图像非常重要,因为边缘时所要提取目标和背景的边界线,提取出边缘才能将目标和背景区分出来。在图像中,边界表明一个特征区域的始终和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度、颜色或纹理特征。边缘检测实际上就是检测图像特性发生变化的位置。

最简单的边缘检测方法是边缘检测算子,它利用相邻区域的像素值不连续的性质,采用一阶或二阶导数来检测边缘点。近年来还提出了基于曲面拟合的方法,基于边界曲线拟合的方法。

1.2.3.区域提取方法

数字图像的像素分布在一定程度上可以反映图像内容的特征,利用像素值的分布特征进行图像分类成了目前对图像进行分类的常用手段。图像分类的性能主要取决于图像的特征提取,数字图像的特征提取主要从颜色、纹理、形状等几个方面提取图像的特征。

1.2.4.分水岭算法

分水岭算法是一种借鉴了形态学的分割算法,在该方法中,将一副图像看成是一个拓扑地图其中灰度值

对应的高度图。高灰度值对应着山峰,低灰度对应着山谷。水总是朝着低的地方流动,直到某一局部低洼处才停下来,这个低洼处被称为吸水盆地。最终所有的水会分聚在不同的吸水盆地,吸水盆地之间的山脊称为分水岭。水从分水岭流下时,它朝不同可能的吸水盆地流去的可能性是相等的。将这种想法用于图像分割,就是要在灰度图像中找出不同的吸水盆地和分水岭,由这些不同的吸水盆地和分水岭组成的区域即为要分割的目标。MATLAB图像处理工具箱中的watershed函数可以用于显示分水岭算法。

2.基于MATLAB的图像阈值分割算法的研究

2.1.人工阈值选择法

阈值分割最简单的方法就是人工选择法。基于灰度阈值的分割方法,其关键是如何合理的选择阈值。人工选择方法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选择出合理的阈值。也可以在人工选择出阈值后,根据分割的效果,不断地进行交互操作,从而选择出最佳的阈值。例如,分析图2.1,做出其灰度直方图(见图2.2),这里选择0.3为阈值,则可得到较为理想的分割结果(见图2.3)。

图2.1 国际标准测试图片 图2.3 阈值分割后的图片

图2.2 图2.1的灰度直方图

显然,灰度直方图的峰谷阈值方法是一种有效且非常简单的阈值方法,但是该方法有一个局限性,就是要求图像的灰度直方图必须具有双峰型。

2.2.自动阈值选择算法

虽然人工选择方法可以选取出令人满意的阈值,但是在无人介入的情况下自动选区阈值是大部分应用的要求,自动阈值选择方法通常使用灰度直方图来分析图像中灰度值的分布,结合特定的应用领域知识来选取最合适的阈值。

2.2.1.

-参数法

-参数法是针对预先已知图像中目标物所占比例的情况下,所采用的一种简单且有效的方法。

-参数法的设计思想是,选择一个值

,使前景目标物所占的比例为

,背景所占比例为

根据上面的原理:

-参数法的具体步骤如下:

①首先获得理想状态下的目标物所占画面的比例

②尝试性地给定一个阈值

③计算在

下判定的目标物的像素点数

,此时目标物所占比例为

④当

足够接近

时,此时得到最佳分割阈值

2.2.2.迭代法

迭代法的的设计思想是,开始时选择一个阈值作为初始估计值,然后按某种策略不断的改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略。好的改进策略应该具备两个特征:一是能够快速收敛,二是在每一个迭代过程中,新产生的阈值优于上一次的阈值。下面介绍一种迭代法:

①选择图像灰度的中值作为初始阈值

②利用阈值

把图像分割为两个区域

,用下式计算区域

的灰度均值

为第

类中的像素个数

③计算出

后,用下式计算出新的阈值

④重复②和③,直到

的差小于某个特定的值

2.2.3.均匀性度量法

均匀性度量法的设计思想是,假设当图像被分为目标物和背景两个类别时,属于同一类别内的像素值分布应该具有均匀性。在这里采用方差来度量像素间的均匀性。设原图像为

,结果图像为

。通过图像分割将原图像分为

(即背景与目标)两类,则算法步骤如下:

①给定一个初始阈值

②分别计算两类中的方差

其中,

为第

类中的像素个数

③分别计算两类在图像中的分布概率

④选择最佳的阈值

,使得图像按照该阈值分为

两类后,满足

2.2.4.类间最大距离法

类间最大距离法德设计思想是,在某个适当的阈值下,图像分割后的前景目标与背景两个类之间的差异最大为最佳阈值。在这里两个类别(目标与背景)的差异,用两个类别中心与阈值之间的距离差来度量。具体步骤如下:

①给定一个初始阈值

,将图像分为

两类

②计算两类的灰度均值

③计算两类的相对距离值

④选择最佳的阈值

,使得图像按照该阈值分为

两类后,满足

2.2.5.Otsu法

Otsu是一种使类间方差最大的自动确定阈值的方法,该方法具有简单、处理速度快的特点,是一种常用的阈值选取方法。MATLAB中的graythresh函数求取阈值采用的就是Otsu法。具体步骤如下:

①给定一个初始阈值

,将图像分为

两类

②计算两类的灰度均值

,以及图像的总体灰度均值

③计算两类的概率

④计算类间方差

⑤选择最佳的阈值

,使得图像按照该阈值分为

两类后,满足

2.2.6.最大熵法

熵是信息论中对不确定性的度量,是对数据中所包含信息量大小的度量。熵取最大值时,就表明获得的信息量为最大。最大熵法的设计思想是,选择适当的阈值将图像分为两类,两类的平均熵之和为最大时,可以从图像中获得最大信息量,以此来确定最佳阈值。具体步骤如下:

①求出图像中的所有像素的分布概率

,图像灰度的分布范围为

②给定一个初始阈值

,将图像分为

两类

③分别计算两个类的平均相对熵

④选择最佳的阈值

,使得图像按照该阈值分为

两类后,满足

2.2.7.最大类间、类内方差比法

从统计意义上讲,方差是表征数据分布不均衡性的统计量,要通过阈值对两类问题进行分割,显然,适当的阈值使得两类数据间的方差越大越好,表明该阈值的确将两类不同的区域分开了,同时希望属于同一类的方差越小越好,表明同一类区域有一定的相似性。因此可以采用类内,类间方差比作为选择阈值的评价参数。具体步骤如下:

①求出图像中的所有像素的分布概率

,图像灰度的分布范围为

②给定一个初始阈值

,将图像分为

两类

③计算两类的方差

,和灰度均值

,以及图像的总体灰度均值

④计算两类的概率

⑤计算类间方差

和类内方差

⑥选择最佳的阈值

,使得图像按照该阈值分为

两类后,满足

2.2.8.聚类方法

所谓聚类算法,是采用模式识别中的聚类思想,以类内保持最大相似性以及类内保持最大距离为目标,通过迭代优化获得最佳的图像分割阈值。具体步骤如下:

①给定一个初始的代表两个类别

的中心灰度值

,两类的方差

②进行分类处理,对某个像素,若

,则

,否则,

③对

中的所有像素分别重新计算其中心点的值

,中心点的值取每个类的均值,同时计算两类的方差

④如果

,则返回②,否则将该分类结果作为最终的结果输出。其中

为新分类的两类像素分布概率

2.2.9.局部阈值方法

前面给出的阈值算法,对于较为简单的图像(即目标与背景比较容易区分),上面的方法简单有效。但是对于较为复杂的图像,则往往会产生一些问题。图2.4给出了国际标准测试图像(图2.1)的局部阈值分割结果。

图2.3 局部阈值分割后的图片

2.3.各种阈值算法的评价

对于目前的各种阈值分割算法,尚无一种固定的分割评价标准。分割的好与坏取决于实际需求和技术人员的主观因素。

参考文献

[1]朱虹.数字图像处理基础[M].北京:科学出版社,2009.125~146.

[2]秦襄培.MATLAB图像处理与界面编程宝典[M].北京:电子工业出版社,2009.441~477.

matlab人工选择阈值进行分割,基于MATLAB的图像阈值分割算法的研究相关推荐

  1. matlab中图像的阈值分割,基于MATLAB的图像阈值分割技术汇总

    数字图像处理课程论文 基于MATLAB的图像阈值分割技术 摘要:本文主要针对图像阈值分割做一个基于MATLAB的分析.通过双峰法,迭 代法以及OUTS法三种算法来实现图像阈值分割,并且就这三种算法做了 ...

  2. matlab 图片倒影_计算物理基于matlab方法研究水中倒影问题

    计算物理基于matlab方法研究水中倒影问题 基于 Matlab 方法研究水中倒影问题[摘 要] 本文介绍了用 matlab 研究倒影问题的方法,利用 matlab 可视化的优点可 以直观的得出结果. ...

  3. matlab噪音的消除办法,基于MATLAB的噪声消除方法.ppt

    基于MATLAB的噪声消除方法 基于MATLAB的噪声消除方法 答 辩 人 :徐 苏 美 指导教师:杨卫平教授 论文的指导思想 21世纪的社会是信息化社会,我们生活中的每一天都离不开数字信号.随着信息 ...

  4. matlab直流计算,一种基于MATLAB的直流开关振荡回路参数测量系统及计算方法与流程...

    本发明属于电力电子 技术领域: ,具体为一种基于MATLAB的直流开关振荡回路参数测量系统及计算方法. 背景技术: :近些年来,我国在高压直流输电技术的研究和应用上取得了突飞猛进的发展,目前已投运的高 ...

  5. 【MATLAB第58期】基于MATLAB的PCA-Kmeans、PCA-LVQ与BP神经网络分类预测模型对比

    [MATLAB第58期]基于MATLAB的PCA-Kmeans.PCA-LVQ与BP神经网络分类预测模型对比 一.数据介绍 基于UCI葡萄酒数据集进行葡萄酒分类及产地预测 共包含178组样本数据,来源 ...

  6. 深度学习(二十一)基于FCN的图像语义分割-CVPR 2015-未完待续

    CNN应用之基于FCN的图像语义分割 原文地址:http://blog.csdn.net/hjimce/article/details/50268555 作者:hjimce 一.相关理论     本篇 ...

  7. 笔记:基于DCNN的图像语义分割综述

    写在前面:一篇魏云超博士的综述论文,完整题目为<基于DCNN的图像语义分割综述>,在这里选择性摘抄和理解,以加深自己印象,同时达到对近年来图像语义分割历史学习和了解的目的,博古才能通今!感 ...

  8. 论文研读笔记_基于优化的SVM心音信号分类算法的研究

    论文研究_基于优化的SVM心音信号分类算法的研究 先存起来,持续更新 摘要 心音信号采集易混入杂音,影响判断: 经验式模态分解算法分析特征分布:心音信号集中于低频.噪音集中于高频: 利用切比雪夫滤波器 ...

  9. 阅读豆丁网----基于模型的混合多目标算法的研究

    链接:  基于模型的混合多目标算法的研究 - 豆丁网 http://www.docin.com/p-1088777086.html (1) 研究背景意义 RM-MEDA(Regularity Mode ...

  10. Python基于OpenCV的图像去雾算法[完整源码&部署教程]

    1.图片识别 2.视频展示 [项目分享]Python基于OpenCV的图像去雾算法[完整源码&部署教程]_哔哩哔哩_bilibili 3.算法原理 图像增强算法常见于对图像的亮度.对比度.饱和 ...

最新文章

  1. C++类功能扩展预留五招
  2. html改变输入框的值,一个Input框值改变,另一个显示内容也改变
  3. boost::qvm::deduce_mat相关的测试程序
  4. 【推荐】国外优秀Drupal答疑网站
  5. Effective C++学习第二天
  6. 开发日志_Jan.8.2017
  7. ORACLE数据库常见问题诊断方法 ---(常见错误篇)
  8. 使用泛型, 写一个为任意类型的动态数组添加元素的方法
  9. gitee创建ssh公钥
  10. 【C#语言学习】学习一门语言
  11. 为什么要从 Microsoft Store 下载 Visual Studio/VS Code?
  12. word2010公式编辑器 格式设置
  13. Ubuntu 16.04安装nvidia显卡驱动
  14. easyui datagrid 可编辑单元格 显示 clear icon 和 放大镜图标
  15. Python实现图片文字识别
  16. Learning Convolutional Neural Network for Graphs
  17. 柴浩然妙用三物黄芩汤
  18. json生成shp_shp与json互转(转载)
  19. webpack配置完全指南
  20. 关于node版本16+ 安装依赖会出现error的问题

热门文章

  1. java.util.concurrent包分类结构图
  2. Python之torch.range() torch.arange()
  3. AD域(active directory)基础概念(一)
  4. NX二次开发-获得制图中对象的坐标点UF_DRF_ask_origin
  5. 【求解器】超级强大的数学规划模型求解器Cplex,导入idea+java代码简单案例详解
  6. php中setinterval,javascript中setInterval的用法
  7. ucgui在windows上的移植,及为go语言打造简易跨平台GUI的想法
  8. ExternalInterface的简单使用方法
  9. 关于GCN的论文笔记--End-to-end Structure-Aware Convolutional Networks for Knowledge Base Completion
  10. Android实现系统重新启动