【数字图像处理】边缘检测与图像分割

原文链接:边缘检测与图像分割

作者:HUSTLX

1图像分割原理

图像分割的研究多年来一直受到人们的高度重视,至今提出了各种类型的分割算法。Pal把图像分割算法分成了6类:阈值分割,像素分割、深度图像分割、彩色图像分割,边缘检测和基于模糊集的方法。但是,该方法中,各个类别的内容是有重叠的。为了涵盖不断涌现的新方法,有的研究者将图像分割算法分为以下六类:并行边界分割技术、串行边界分割技术、并行区域分割技术、串行区域分割技术、结合特定理论工具的分割技术和特殊图像分割技术。而在较近的一篇综述中,更有学者将图像分割简单的分割数据驱动的分割和模型驱动的分割两类。下面将图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法、基于数学形态的分割方法以及基于特定理论的分割方法等,对其中主要的分别进行简要介绍。

1.1灰度阈值分割法

是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。阈值分割方法实际上是输入图像f到输出图像g的如下变换:

其中,T为阈值,对于物体的图像元素g(i,j)=l,对于背景的图像元素g(i,j)=0。

由此可见,阈值分割算法的关键是确定阈值,如果能确定一个合适的阈值就可准确地将图像分割开来。如果阈值选取过高,则过多的目标区域将被划分为背景,相反如果阈值选取过低,则过多的背景将被划分到目标区[7]。阈值确定后,将阈值与像素点的灰度值比较和像素分割可对各像素并行地进行,分割的结果直接给出图像区域。

阈值分割必须满足一个假设条件:图像的直方图具有较明显的双峰或多峰,并在谷底选择闭值。因此这种方法对目标和背景反差较大的图像进行分割的效果十分明显,而且总能用封闭、连通的边界定义不交叠的区域。

阈值分割法主要分为全局和局部两种,目前应用的闭值分割方法都是在此基础上发展起来的,比如最小误差法、最大相关法、最大嫡法、矩量保持法、Otsu最大类间方差法等,而应用最广泛的是Otsu最大类间方差法。

人们发展了各种各样的阈值处理技术,包括全局阈值、自适应阈值、最佳阈值等等。  全局阈值是指整幅图像使用同一个阈值做分割处理,适用于背景和前景有明显对比的图像。它是根据整幅图像确定的:T=T(f)。但是这种方法只考虑像素本身的灰度值,一般不考虑空间特征,因而对噪声很敏感。常用的全局阈值选取方法有利用图像灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值法以及其它一些方法。在许多情况下,物体和背景的对比度在图像中的各处不是一样的,这时很难用一个统一的阈值将物体与背景分开。这时可以根据图像的局部特征分别采用不同的阈值进行分割。实际处理时,需要按照具体问题将图像分成若干子区域分别选择阈值,或者动态地根据一定的邻域范围选择每点处的阈值,进行图像分割。这时的阈值为自适应阈值。阈值的选择需要根据具体问题来确定,一般通过实验来确定。对于给定的图像,可以通过分析直方图的方法确定最佳的阈值,例如当直方图明显呈现双峰情况时,可以选择两个峰值的中点作为最佳阈值。

阈值分割的优点是计算简单、运算效率较高、速度快,在算法上容易实现,在重视运算效率的应用场合(如用于硬件实现),它得到了广泛应用。它对目标和背景对比度反差较大图像这种分割很有效, 而且总能用封闭、连通的边界定义不交叠的区域。但它不适用于多通道图像和特征值相关不大的图像,对图像中不存在明显灰度差异或各物体的灰度值范围有较大重叠的图像分割问题难以得到准确结果。另外由于阈值确定主要依赖于灰度直方图, 而很少考虑图像中像素的空间位置关系,因此当背景复杂,特别在是同一背景上重叠出现若干个研究目标时,或图像中噪声信号较多时,目标的灰度值与背景相差无几等情形下,容易丧失部分边界信息,按照固定的阈值进行分割所得到的结果就不准确,造成分割不完整,需要进一步的精确定位。

1.2基于区域的分割方法

  区域生长和分裂合并法是两种典型的串行区域技术,其分割过程后续步骤的处理要根据前面步骤的结果进行判断而确定。

(1)区域生长

  区域生长的基本思想是将具有相似性质的像素集合起来构成区域。具体先对每个需要分割的区域找一个种子像素作为生长的起点,然后将种子像素周围邻域中与种子像素有相同或相似性质的像素(根据某种事先确定的生长或相似准则来判定)合并到种子像素所在的区域中。将这些新像素当作新的种子像素继续进行上面的过程,直到再没有满足条件的像素可被包括进来。

区域生长需要选择一组能正确代表所需区域的种子像素,确定在生长过程中的相似性准则,制定让生长停止的条件或准则。相似性准则可以是灰度级、彩色、纹理、梯度等特性。选取的种子像素可以是单个像素,也可以是包含若干个像素的小区域。大部分区域生长准则使用图像的局部性质。生长准则可根据不同原则制定,而使用不同的生长准则会影响区域生长的过程。

区域生长法的优点是计算简单,对于较均匀的连通目标有较好的分割效果,对有复杂物体定义的复杂场景的分割或者对自然景物的分割等类似先验知识不足的图像分割, 效果均较理想,Wu H S等提出利用肺部癌细胞图像的均值、标准偏差构成的矢量作为细胞分割的特征, 提出的区域增长分割算法分割肺部癌细胞纹理图像, 取得较好结果[10]。它的缺点是需要人为确定种子点,虽然其抗噪性能优于边缘分割和直方图分割,但仍对噪声敏感,可能导致区域内有空洞;另外,它是一种串行算法,当目标较大时,分割速度较慢,因此在设计算法时,要尽量提高效率;而且在计算过程中引入的预定误差值选取不当时,还会引入误判,易受分析目标内部组织之间的重叠干扰影响。因此,基于区域生长的分割方法一般适合于边缘光滑、无重叠的细胞图象的分割。

(2)区域分裂合并

区域生长是从某个或者某些像素点出发,最后得到整个区域,进而实现目标提取。分裂合并差不多是区域生长的逆过程:从整个图像出发,不断分裂得到各个子区域,然后再把前景区域合并,实现目标提取。分裂合并的假设是对于一幅图像,前景区域由一些相互连通的像素组成的,因此,如果把一幅图像分裂到像素级,那么就可以判定该像素是否为前景像素。当所有像素点或者子区域完成判断以后,把前景区域或者像素合并就可得到前景目标。在这类方法中,最常用的方法是四叉树分解法。设R代表整个正方形图像区域,P代表逻辑谓词。基本分裂合并算法步骤如下:

①       对任一个区域,如果H(Ri)=FALSE就将其分裂成不重叠的四等份;

②       对相邻的两个区域Ri和Rj,它们也可以大小不同(即不在同一层),如果条件H(Ri∪Rj)=TRUE满足,就将它们合并起来。

③       如果进一步的分裂或合并都不可能,则结束。  

分裂合并法的关键是分裂合并准则的设计。这种方法对复杂图像的分割效果较好,但算法较复杂,计算量大,分裂还可能破坏区域的边界。

1.3基于边缘的分割方法

图像分割的一种重要途径是通过边缘检测,即检测灰度级或者结构具有突变的地方,表明一个区域的终结,也是另一个区域开始的地方。这种不连续性称为边缘。不同的图像灰度不同,边界处一般有明显的边缘,利用此特征可以分割图像。图像中边缘处像素的灰度值不连续,这种不连续性可通过求导数来检测到。对于阶跃状边缘,其位置对应一阶导数的极值点,对应二阶导数的过零点(零交叉点)。因此常用微分算子进行边缘检测[11]

常用的一阶微分算子有Roberts算子、Prewitt算子和Sobel算子,二阶微分算子有Laplace算子和Kirsh算子等。在实际中各种微分算子常用小区域模板来表示,微分运算是利用模板和图像卷积来实现。这些算子对噪声敏感,只适合于噪声较小不太复杂的图像。由于边缘和噪声都是灰度不连续点,在频域均为高频分量,直接采用微分运算难以克服噪声的影响。因此用微分算子检测边缘前要对图像进行平滑滤波。

Roberts算子有利于对具有陡峭边缘的低噪声图像的分割;laplacian算子具有各向同性的特点;Roberts算子和laplacian算子在实施过程中大大增强了噪声,恶化了信噪比。Prewitt算子、Sobel算子等有利于对具有较多噪声且灰度渐变图像的分割。Log算子和Canny算子是具有平滑功能的二阶和一阶微分算子,边缘检测效果较好。其中Log算子是采用Laplacian算子求高斯函数的二阶导数,Canny算子是高斯函数的一阶导数,它在噪声抑制和边缘检测之间取得了较好的平衡。Marr算法对有较多噪声的图像具有平滑作用,且其边缘检测效果优于以上几种算子,但Marr算法在平滑的同时导致图像对比度下降[7]。Kirch算法利用对梯度图像适当的阈值进行二值化, 使得目标和背景像素点低于阈值, 而大多数边缘点高于阀值, 同时为了提高性能, 在该类算法中可引入分水岭算法以进行准确分割[1]

Hough变换法利用图像全局特性而直接检测目标轮廓,将边缘像素连接起来组成区域封闭边界的一种常见方法。在预先知道区域形状的条件下,利用哈夫变换可以方便地得到边界曲线而将不连续的边界像素点连接起来。它的主要优点是受噪声和曲线间断的影响较小。

对于灰度变化复杂和细节较丰富图象,边缘检测算子均很难完全检测出边缘,而且一旦有噪声干扰时,上述算子直接处理效果更不理想。这一方法用来分割显微图象的例子不多,因为显微图象中的许多纹理或颗粒会掩盖真正的边缘,虽然可以通过有关算法改进,但效果并不太好。

拟合算子( 即参数模型匹配算法)原理:用边缘的参数模型对图像的局部灰度值进行拟合, 再在拟合的参数模型上进行边缘检测。优缺点:此类算子在检测边缘的同时, 还平滑了噪声, 对有较大噪声和高纹理细胞图像处理效果较好, 但由于参数模型记录着更多的边缘结构信息, 计算开销很大, 算法复杂, 而且对边缘类型要求较高。

以上三种方法中,基于边缘分割的最常见的问题是在没有边界的地方出现了边缘以及在实际存在边界的地方没有出现边界, 这是由图像噪声或图像中的不适合的信息造成的[24]。基于区域增长方法分割后的图像,时常是由于参数的设置非最优性造成, 不是含有太多的区域就是含有过少的区域。阈值化是最简单的分割处理, 计算代价小, 速度快, 用一个亮度常量即阈值来分割物体和背景。

原文地址:https://www.cnblogs.com/-wenli/p/11523397.html

时间: 2024-10-08 04:00:19

【数字图像处理】边缘检测与图像分割的相关文章

初始----python数字图像处理--:环境安装与配置

一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因此,我们这里使用python这个脚本语言来进行数字图像处理. 要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的. 要使用python进行各种开发和科学计算,还需要安装对应的包.这和matlab非常相似,只是matla

结合实例与代码谈数字图像处理都研究什么?

图像处理(以及机器视觉)在学校里是一个很大的研究方向,很多研究生.博士生都在导师的带领下从事着这方面的研究.另外,就工作而言,也确实有很多这方面的岗位和机会虚位以待.而且这种情势也越来越凸显.那么图像处理到底都研究哪些问题,今天我们就来谈一谈.图像处理的话题其实非常非常广,外延很深远,新的话题还在不断涌现.下面给出的12个大的方向,系我认为可以看成是基础性领域的部分,而且它们之间还互有交叉 1.图像的灰度调节 图像的灰度直方图.线性变换.非线性变换(包括对数变换.幂次变换.指数变换等).灰度拉伸

数字图像处理【一】基础理论

1. 基本处理流程: a) 图像预处理: 1) 点运算(灰度直方图/灰度线性变换/灰度对数变换/伽马变换/灰度阈值变换/分段线性变换/直方图均衡化/直方图规定化) 2) 几何变换(图像平移/图像镜像/图像转置/图像缩放/图像旋转/插值算法/图像配准) 3) 空间域图像增强(空间域滤波/图像平滑/中值滤波/图像锐化) 4) 频域图像增强(傅里叶变换/频率滤波) 5) 彩色图像处理(彩色模型(RGB/CMY/CMYK/HSI/HSV/YUV/YIQ/Lab)/彩色补偿/彩色平衡) 6) 形态学图像处

数字图像处理的基本原理和常用方法

数字图像处理的基本原理和常用方法 数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程.图像处理最早出现于 20 世纪 50 年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息.数字图像处理作为一门学科大约形成于 20 世纪 60 年代初期.早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的.图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强.复原.编码.压缩等. 数字图像处理常用方法

6本值得收藏的数字图像处理书籍!

在这个看脸的时代,颜值就是一切.怎样可以成为控制颜值的"黑魔法师"?相信,阅读以下这些经典的图像处理书籍能够助你一臂之力.赶紧紧随大圣众包威客平台的脚步吧! <数字图像处理基础> 随着台式计算机的处理能力日益增强,各种图像拍摄的设备(例如平板电脑.手机摄像头.数码相机.扫描仪等)的普及,以及互联网的加持,使得数字图像处理变得与文字处理一样普及.本书就数字图像处理的各个基本主题,先给出有关问题的数学公式,然后根据数学公式给出实现有关问题的伪代码,最后在Java语言及Image

数字图像处理 第三版 第一章笔记

1. 数字图像和数字图像处理 图像可定义为一个函数,其自变量是坐标,因变量是灰度值. 当自变量和因变量全是离散值时,则称该图像是数字图像. 数字图像由有限数量的元素组成,这些元素成为像素,每个像素都有特定的位置和灰度值. 数字图像处理是指借助数字计算机来处理数字图像. 从图像处理到计算机视觉是一个连续的统一体. 典型地,将统一体分为三种计算处理,即初级.中级和高级. (1)低级处理涉及初级操作,如降噪.增强.锐化.输入输出都是图像. (2)中级处理涉及诸多任务,如分割.分类和识别等.输入为图像,

数字图像处理:基于霍夫变换的车道线检测

1 数字图像处理:基于霍夫变换的车道线检测 https://zhuanlan.zhihu.com/p/60190848 2 环境 2-1  安装  Anaconda3 环境 2-2  在Anaconda3 环境种安装开发IDE  spyder 刚开始找不到spyder,但是我安装完vs code之后就出现了选择安装spyder的图标 2-3 安装opencv和contrib扩展库 2-4安装matplotlib库 https://blog.csdn.net/weixin_42116878/art

《数字图像处理原理与实践(MATLAB版)》一书之代码Part9

本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part9,辑录该书第431至第438页之代码,供有需要读者下载研究使用.至此全书代码发布已经接近尾声,希望这些源码能够对有需要的读者有所帮助.代码执行结果请参见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MATLAB版)>一书代码发布的说明 http://blog.csdn.net/baimafujinji/article/details/40987807 首先给出的是原书P438所列之程序源

《数字图像处理原理与实践(MATLAB版)》一书之代码Part8

本文系<数字图像处理原理与实践(MATLAB版)>一书之代码系列的Part8,辑录该书第375至第415页之代码,供有需要读者下载研究使用.至此全书代码发布已经接近尾声,希望这些源码能够对有需要的读者有所帮助.代码执行结果请参见原书配图,建议下载代码前阅读下文: 关于<数字图像处理原理与实践(MATLAB版)>一书代码发布的说明 http://blog.csdn.net/baimafujinji/article/details/40987807 P385-1 function y