Halcon图像分割的算法思想和边缘检测函数汇总

一、图像分割思想

图像分割的主要算法:

1.基于阈值的分割方法

2.基于边缘的分割方法

3.基于区域的分割方法

4.基于聚类分析的图像分割方法

5.基于小波变换的分割方法

6.基于数学形态学的分割方法

7.基于人工神经网络的分割方法

基于阈值的分割方法

阈值分割方法作为一种常见的区域并行技术,就是用一个或几个阈值将图像的灰度直方图分成几个类,认为图像中灰度值在同一类中的像素属于同一物体。由于是直接利用图像的灰度特性,因此计算方便简明、实用性强。显然,阈值分割方法的关键和难点是如何取得一个合适的阈值。而实际应用中,阈值设定易受噪声和光亮度影响。近年来的方法有:用最大相关性原则选择阈值的方法、基于图像拓扑稳定状态的方法、Yager测度极小化方法、灰度共生矩阵方法、方差法、熵法、峰值和谷值分析法等,其中,自适应阈值法、最大熵法、模糊阈值法、类间阈值法是对传统阈值法改进较成功的几种算法。更多的情况下,阈值的选择会综合运用2种或2种以上的方法,这也是图像分割发展的一个趋势。

特点

阈值分割的优点是计算简单、运算效率较高、速度快。全局阈值对于灰度相差很大的不同目标和背景能进行有效的分割。当图像的灰度差异不明显或不同目标的灰度值范围有重叠时,应采用局部阈值或动态阈值分割法。另一方面,这种方法只考虑像素本身的灰度值,一般不考虑空间特征,因而对噪声很敏感。在实际应用中,阈值法通常与其他方法结合使用。

基于边缘的分割方法

基于边缘检测的分割方法试图通过检测包含不同区域的边缘来解决分割问题,是最常用的方法之一。通常不同的区域之间的边缘上像素灰度值的变化往往比较剧烈,这是边缘检测得以实现的主要假设之一。常用灰度的一阶或者二阶微分算子进行边缘检测。常用的微分算子有一次微分(sobel算子,Robert算子等),二次微分(拉普拉斯算子等)和模板操作(Prewit算子,Kirsch算子等)。

特点

基于边缘的分割方法其难点在于边缘检测时抗噪性和检测精度之间的矛盾。若提高检测精度,则噪声产生的伪边缘会导致不合理的轮廓;若提高抗噪性,则会产生轮廓漏检和位置偏差。为此,人们提出各种多尺度边缘检测方法,根据实际问题设计多尺度边缘信息的结合方案,以较好的兼顾抗噪性和检测精度。

基于区域的分割方法

区域分割的实质就是把具有某种相似性质的像索连通,从而构成最终的分割区域。它利用了图像的局部空间信息,可有效地克服其他方法存在的图像分割空间小连续的缺点。在此类方法中,如果从全图出发,按区域属性特征一致的准则决定每个像元的区域归属,形成区域图,常称之为区域生长的分割方法。如果从像元出发,按区域属性特征一致的准则,将属性接近的连通像元聚集为区域,则是区域增长的分割方法。若综合利用上述两种方法,就是分裂合并的方法。它是先将图像分割成很多的一致性较强的小区域,再按一定的规则将小区域融合成大区域,达到分割图像的目的。

特点

基于区域的分割方法往往会造成图像的过度分割,而单纯的基于边缘检测方法有时不能提供较好的区域结构,为此可将基于区域的方法和边缘检测的方法结合起来,发挥各自的优势以获得更好的分割效果。

基于聚类分析的图像分割方法

特征空间聚类法进行图像分割是将图像空间中的像素用对应的特征空间点表示,根据它们在特征空间的聚集对特征空间进行分割,然后将它们映射回原图像空间,得到分割结果。其中,K均值、模糊C均值聚类(FCM)算法是最常用的聚类算法。K均值算法先选K个初始类均值,然后将每个像素归入均值离它最近的类并计算新的类均值。迭代执行前面的步骤直到新旧类均值之差小于某一阈值。模糊C均值算法是在模糊数学基础上对K均值算法的推广,是通过最优化一个模糊目标函数实现聚类,它不像K均值聚类那样认为每个点只能属于某一类,而是赋予每个点一个对各类的隶属度,用隶属度更好地描述边缘像素亦此亦彼的特点,适合处理事物内在的不确定性。利用模糊C均值(FCM)非监督模糊聚类标定的特点进行图像分割,可以减少人为的干预,且较适合图像中存在不确定性和模糊性的特点。

聚类方法应注意几个问题:

(1)聚类的类数如何确定。

(2)怎样确定聚类的有效性准则。

(3)聚类中心的位置和特性事先不清楚时,如何设置初始值。

(4)运算的开销。

并且FCM算法对初始参数极为敏感,有时需要人工干预参数的初始化以接近全局最优解,提高分割速度。另外,传统FCM算法没有考虑空间信息,对噪声和灰度不均匀敏感。

基于小波变换的分割方法

基于小波变换的阈值图像分割方法的基本思想是,首先由二进小波变换将图像的直方图分解为不同层次的小波系数,然后依据给定的分割准则和小波系数选择阈值门限,最后利用阈值标出图像分割的区域。整个分割过程是从粗到细,有尺度变化来控制,即起始分割由粗略的L2(R)子空间上投影的直方图来实现,如果分割不理想,则利用直方图在精细的子空间上的小波系数逐步细化图像分割。分割算法的计算馈与图像尺寸大小呈线性变化。小波变换为信号在不同尺度上的分析和表征提供了一个精确和统一的框架。从图像分割的角度来看,小波分解提供了一个数学上完备的描述;小波变换通过选取合适的滤波器,可以极大地减少或去除所提取的不同特征之间的相关性,不仅具有“变焦”特性,而且在实现上有快速算法。

特点

小波变换是一种多尺度、多通道的分析工具它是空域和频域的局域变换,因而能有效地从信号中提取信息,通过伸缩和平移等运算功能对函数或信号进行多尺度分析,解决了傅立叶变换不能解决的许多问题。近年来多进制小波开始用于边缘检测。另外,利用正交小波基的小波变换也可提取多尺度边缘,并可通过对图像奇异度的计算和估计来区分一些边缘的类型。

基于数学形态学的分割方法

数学形态学是一种非线性滤波方法,可以用于抑制噪声、特性提取、边缘检测、图像分割等图像处理问题。数学形态学首先被用来处理二值图像,后来也被用来处理灰度图像,现在又有学者开始用软数学形态学和模糊形态学来解决计算机视觉方面的问题。数学形态学的特点是能将复杂的形状进行分解,并将有意义的形状分量从无用的信息中提取出来。它的基本思想是利用一个称为结构元素的探针来收集图像的信息,当探针在图像中不断的移动时,不仅可根据图像各个部分间的相互关系来了解图像的结构特征,而且利用数学形态学基本运算还可以构造出许多非常有效的图像处理与分析方法。其基本的形态运算是腐蚀与膨胀。腐蚀具有使目标缩小、目标内孔增大以及外部孤立噪声消除的效果;而膨胀是将图像中与目标物体接触的所有背景点合并到物体中的过程,结果是使目标增大、孔径缩小,可以增补目标中的空间,使其形成连通域。数学形态学中另一对基本运算方法是开运算和闭运算。开运算具有消除图像是细小物体,并在物体影响纤细处分离物体和平滑较大物体边界的作用;闭运算具有填充物体影像内细小空间, 接邻近物体和平滑边界的作用。

特点

数学形态学应用于图像分割,具有定位效果好、分割精度高、抗噪声性能好的特点。同时这种方法也有着自身的局限性:由于在图像处理的前期工作中,采用数学形态学的开(闭)运算,进行图像处理后,依然存在大量与目标不符的短线和孤立点;由于预处理工作的不彻底,还需要进行一系列的基于点的开(闭)运算,因此运算速度明显下降。如何将数学形态学与其它方法综合运用以克服这些缺陷,将是数学形态学以后的工作方向。连接邻近物体和平滑边界的作用。

基于人工神经网络的分割方法

近年来,人工神经网络识别技术已经引起了广泛的关注,并应用于图像分割。基于神经网络的分割方法的基本思想是通过训练多层感知机来得到线性决策函数,然后用决策函数对像素进行分类来达到分割的目的

特点

用人工神经网络的方法分割图像,需要大量的训练数据。神经网络存在巨量的连接,容易引入空间信息,能较好地解决图像中的噪声和不均匀问题。选择何种网络结构是这种方法要解决的主要问题。

基于遗传学算法的分割方法

遗传算法(GA),是一种模拟自然选择和遗传机制的搜索和优化过程,它具有很强的全局优化搜索能力,是一种具有广泛适用性的自适应搜索方法。它在搜索空间中是在种群中而不是在单点上进行寻优,它在求解过程中使用遗传操作规则而不是确定性规则来工作。这些特点使得遗传算法很适于应用在图像分割中,尤其是阈值分割法以及区域生长法中。利用GA的全局寻优能力及对初始位置的不敏感特性,可以改进图像分割的性能。

特点

遗传算法应用于图像分割,其难点在于适应度函数的选择以及交叉概率和变异概率的确定。GA还有可能收敛于局部最优。可考虑使用能够自适应设置交叉概率和变异概率自适应遗传算法以及和模拟退火法相结合的混合遗传算法。

二、边缘检测函数

sobel_amp ( Image : EdgeAmplitude : FilterType, Size : ) 根据图像的一次导数计算图像的边缘

close_edges ( Edges, EdgeImage : RegionResult : MinAmplitude : )
close_edges_length ( Edges, Gradient : ClosedEdges : MinAmplitude, MaxGapLength : ) 使用边缘高度图像关闭边缘间隙。输出的区域包含杯关闭的区域。(感觉是对边缘的扩充)
derivate_gauss ( Image : DerivGauss : Sigma, Component : )
watersheds ( Image : Basins, Watersheds : : ) 从图像中提取风水岭。
zero_crossing ( Image : RegionCrossing : : ) 零交点(二次导数)
diff_of_gauss ( Image : DiffOfGauss : Sigma, SigFactor : ) 近似日志算子( 拉普拉斯高斯) 。
laplace_of_gauss  ( Image : ImageLaplace : Sigma : ) 拉普拉斯高斯
edges_color_sub_pix  ( Image : Edges : Filter, Alpha, Low, High : ) 精确的亚像素边缘提取(彩色图像)
edges_sub_pix  ( Image : Edges : Filter, Alpha, Low, High : ) 精确边缘提取的亚像素(灰度图像)
edges_color  ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ) 根据颜色进行边缘提取
edges_image  ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ) 边缘提取
skeleton  ( Region : Skeleton : : ) 计算区域的框架 Skeleton == Region
frei_amp  ( Image : ImageEdgeAmp : : ) Frei-chen 模板进行边缘检测(振幅)
frei_dir  ( Image : ImageEdgeAmp, ImageEdgeDir : : ) Frei-chen 模板进行边缘检测(振幅和方向)
nonmax_suppression_dir  ( ImgAmp, ImgDir : ImageResult : Mode : ) 使用方向图像抑制所有的超过给定最大值的图像灰度值的点
gen_contours_skeleton_xld ( Skeleton : Contours : Length, Mode : ) 将系统框架转换成 XLD 轮廓

laplace ( Image : ImageLaplace : ResultType, MaskSize, FilterMask : )使用有限差分计算拉普拉斯变换
info_edges ( : : Filter, Mode, Alpha : Size, Coeffs ) 估计滤波器的宽度
kirsch_dir ( Image : ImageEdgeAmp, ImageEdgeDir : : ) 使用 Kirsch 算子计算出边缘(振幅和方向)
prewitt_amp ( Image : ImageEdgeAmp : : ) 使用 Prewitt 算子计算出边缘(振幅)
kirsch_amp ( Image : ImageEdgeAmp : : ) 使用 Kirsch 算子计算出边缘(振幅)
highpass_image ( Image : Highpass : Width, Height : ) 从高频成分提取的图像。
sobel_amp ( Image : EdgeAmplitude : FilterType, Size : ) 使用 Sobel 算子计算出边缘(振幅)
robinson_amp ( Image : ImageEdgeAmp : : ) 使用 Robinson 算子计算出边缘(振幅)
roberts ( Image : ImageRoberts : FilterType : ) 使用 Robert 算子计算边缘

--

发布了455 篇原创文章 · 获赞 535 · 访问量 324万+

猜你喜欢

转载自blog.csdn.net/libaineu2004/article/details/103706790
今日推荐