灰度阈值分割算法

合集下载

otsu算法 阈值分割

otsu算法 阈值分割

otsu算法阈值分割OTSU算法是一种阈值分割算法,在图像处理中起着重要的作用。

本文将详细介绍OTSU算法的原理、步骤和应用。

一、OTSU算法原理OTSU算法基于图像的灰度直方图,通过寻找图像直方图的双峰特征,选择一个合适的阈值对图像进行分割。

其原理可以概括为:将图像分为背景和前景两部分,使得背景和前景两类的类内方差之和最小化。

二、OTSU算法步骤1. 计算灰度直方图:首先,需要计算图像的灰度直方图,统计每一灰度级的像素点个数。

2. 计算总体平均灰度值:使用公式计算图像的总体平均灰度值,通过对每个灰度级的像素点数乘以其对应的灰度值,并将结果相加,最后再除以图像像素总数。

3. 遍历所有可能的阈值:从0到灰度级的最大值,遍历所有可能的阈值,计算对应的类内方差。

4. 计算类内方差:对每个阈值,将图像分为两部分,计算背景和前景的类内方差。

类内方差定义为背景和前景两部分像素点的平均方差之和。

5. 找到最小类内方差对应的阈值:经过上一步骤的遍历,找到使类内方差最小的阈值,即为OTSU算法计算得到的最佳阈值。

三、OTSU算法应用1. 图像二值化:OTSU算法常被用于图像二值化处理,将图像转为黑白二值图像。

通过OTSU算法计算得到的最佳阈值,将图像中的像素点根据阈值分为背景和前景两部分。

2. 图像分割:OTSU算法也可以用于图像分割。

通过将图像根据OTSU算法计算得到的阈值进行分割,可以将图像中感兴趣的物体从背景中分离出来,便于后续处理和分析。

3. 文字识别:OTSU算法在文字识别中具有广泛应用。

通过OTSU算法得到的最佳阈值,可以对图像中的文字区域进行有效分割,提高文字识别的准确性和鲁棒性。

4. 医学图像处理:OTSU算法在医学图像处理中的应用也比较广泛。

通过OTSU算法可以对医学图像进行分割,提取出感兴趣的区域,辅助医生做出准确的诊断。

四、总结OTSU算法是一种基于图像灰度直方图的阈值分割算法,通过寻找使类内方差最小的阈值,将图像分割成背景和前景。

niblack二值化分割算法详解(一)

niblack二值化分割算法详解(一)

niblack二值化分割算法详解(一)Niblack二值化分割算法详解1. 算法背景二值化分割是图像处理中的一种基础操作,在很多应用中都起到了重要作用。

Niblack二值化分割算法是一种基于局部阈值的图像分割方法,能够根据不同区域的亮度自适应地进行阈值选择,从而有效地分离前景和背景。

2. 算法原理Niblack二值化分割算法的基本原理是根据每个像素点的局部邻域灰度值计算一个动态阈值,根据该阈值将像素点分为前景和背景两类。

具体计算公式如下:T(x, y) = μ(x, y) + k * σ(x, y)其中,T(x, y)表示像素点(x, y)的动态阈值,μ(x, y)表示(x, y)的邻域灰度值的平均值,σ(x, y)表示邻域灰度值的标准差,k为可调参数,用于控制分割的敏感性。

3. 算法步骤Niblack二值化分割算法的主要步骤如下:1.将图像转换为灰度图像。

2.对每个像素点的邻域进行计算,得到动态阈值。

3.根据动态阈值将像素点分为前景和背景两类,生成二值图像。

4. 算法优缺点Niblack二值化分割算法具有以下优点:•简单易实现。

•能够适应不同像素区域的亮度差异。

•能够有效分离前景和背景。

然而,该算法也存在一些缺点:•对噪声敏感。

•对图像亮度突变较大的情况适应能力较差。

5. 应用领域Niblack二值化分割算法在一些特定领域具有广泛应用,包括:•文字图像识别。

•文档图像处理。

•条形码和二维码识别。

6. 总结Niblack二值化分割算法是一种简单但有效的图像分割方法。

它通过根据像素点的局部邻域灰度值计算动态阈值,能够适应不同区域的亮度差异,从而实现前景和背景的有效分离。

然而,该算法对噪声敏感,适应能力较差,因此在实际应用中需要根据具体情况进行调优和改进。

以上便是对Niblack二值化分割算法的详细解释,希望对读者有所帮助。

参考文献: - Niblack, W. A., An Introduction to Digital Image Processing. Prentice-Hall, 1986.。

阈值分割的原理与应用

阈值分割的原理与应用

阈值分割的原理与应用1. 概述阈值分割是一种常用的图像分割方法,通过将图像的像素值与事先设定的阈值进行比较,将像素点分为不同的区域,从而达到图像分割的目的。

本文将介绍阈值分割的原理,并讨论其在不同领域的应用。

2. 阈值分割的原理阈值分割的原理比较简单,主要分为以下几个步骤:2.1 图像灰度化在进行阈值分割之前,首先需要将彩色图像转化为灰度图像。

通过对彩色图像的每个像素点的RGB值进行加权平均,可以得到相应的灰度值。

2.2 确定阈值在阈值分割中,最关键的一步是确定阈值。

根据图像的特点以及应用需求,可以采用不同的方法来选择阈值。

常见的方法有全局阈值法、自适应阈值法、Otsu 方法等。

2.3 分割图像根据确定的阈值,将图像中的像素点分为两类:一类是大于阈值的像素点,另一类是小于等于阈值的像素点。

根据应用的需求,可以将分割后的像素点设为黑色或白色。

3. 阈值分割的应用阈值分割在图像处理领域有广泛的应用,下面将介绍一些常见的应用场景。

3.1 文字识别阈值分割可以用于文字识别中,通过将图像中的文字与背景分离,可以提高文字识别的准确率。

在文字识别中,可以根据文字与背景的灰度差异来确定阈值,然后将文字与背景进行分割。

3.2 图像增强阈值分割可以用于图像增强中,通过将图像的主要目标与背景分割开来,可以突出图像的主要内容。

在图像增强中,可以根据像素点与周围像素点的灰度差异来确定阈值,然后将目标与背景进行分割。

3.3 目标检测阈值分割可以用于目标检测中,通过将目标与背景分离,可以提高目标检测的准确率。

在目标检测中,可以根据目标的灰度与周围像素点的灰度差异来确定阈值,然后将目标与背景进行分割。

3.4 医学图像分析阈值分割在医学图像分析中也有广泛的应用。

例如,可以通过将肿瘤与正常组织分割开来,来进行肿瘤的定位与分析。

4. 总结阈值分割是一种简单而有效的图像分割方法,通过将图像的像素值与事先设定的阈值进行比较,可以将图像中的目标与背景分离。

阈值分割公式

阈值分割公式

阈值分割公式阈值分割公式阈值分割是一种常用的图像处理技术,它可以将图像根据给定的阈值进行二值化处理,使得图像中的目标物体与背景色彩有所区分,便于后续的处理。

随着图像处理技术的不断发展,阈值分割也不断完善,其中最常用的就是基于阈值的分割公式。

一、常见阈值分割算法1. Otsu阈值法Otsu是一种基于直方图的阈值分割方法,它的基本思想是寻找一个最佳阈值,使得图像中目标物体与背景的差异最大化。

这种方法适用于灰度图像,具有较好的分割效果。

Otsu算法的计算公式如下:$$\sigma^2(w_0,w_1) =w_0(t)\sigma^2_0(t)+w_1(t)\sigma^2_1(t)$$2. 最大熵阈值法最大熵阈值法是一种基于信息熵的阈值分割方法,它通过最大化图像的熵值,来确定最佳阈值。

这种方法适用于处理具有复杂背景的图像,它的计算公式如下:$$\max H(T)= - \sum_{i=1}^{k}p_i\log_2(p_i)$$3. 基于聚类的阈值分割法基于聚类的阈值分割法是一种就是把原始图像分成若干个子集,使得每个子集都包含一部分图像的像素值,从而将图像进行分割。

它计算每个子集的灰度均值和方差来确定分割阈值,公式如下:$$\max \varepsilon(i)=\frac{(T*\mu_i-\mu)^2}{T*\sigma_i^2+(1-T)*\sigma_{i+1}^2}$$二、阈值分割的应用阈值分割在实际应用中广泛,例如人脸识别、车牌号识别等。

通过对图像二值化处理可以提高算法的精度,使得对目标物体的检测更加准确。

例如,在车牌号识别中,阈值分割可以先进行图像二值化处理,再进行腐蚀、膨胀等操作,从而将车牌号与背景进行分离,然后再进行字符识别等操作,提高了算法的效率和准确性。

三、总结阈值分割是图像处理中最为常见和实用的方法之一,其应用范围广泛,通过选择不同的阈值分割算法和参数,可以实现不同的图像处理任务。

阈值分割原理

阈值分割原理

阈值分割原理阈值分割是一种数字图像处理中常用的像素分割方法,其原理主要是基于图像灰度值的统计特性。

其思路是分别统计图像中不同灰度级别的像素个数,通过确定一个灰度值作为阈值,将图像中的像素分成两类,进而实现对图像的分割。

阈值分割的基本原理是通过将图像灰度值分为两个区间,从而将灰度低于或高于阈值的像素分为两类,从而实现图像的二值化处理。

本文将对阈值分割的基本原理、常用的实现方法以及应用进行全面的介绍。

阈值分割的基本原理阈值分割的基本原理是将图像中的像素分为两个部分,一部分为灰度值大于等于阈值的像素,另一部分为灰度值小于阈值的像素。

此时,我们可以将分割出来的灰度值较低的像素赋值为0,灰度值较高的像素赋值为1,从而将其转化为二进制图像。

这种方法通常用于物体检测、图像分割、OCR等领域,其中图像分割是其中应用最为广泛的领域之一。

在将图像进行阈值分割时,需要找到一个合适的阈值。

阈值可以是任何一个位于图像灰度值范围之内的值。

阈值分割方法需要根据具体的场景进行灰度值的筛选,通常可以选择采用迭代法、聚类法、最大间隔法和形态学方法等实现。

1. 迭代法迭代法通常是一种较为常见的方法。

这种方法的基本思路是:先在图像的灰度值范围内随机选取一个阈值,然后对目标二值化图像进行处理,将灰度大于或等于该阈值的像素设为前景像素(白色),将小于该阈值的像素设为背景像素(黑色)。

接着,可以计算出前景和背景的平均灰度值,将其作为新的阈值。

将新阈值作为该算法的输入,重复执行该算法,直到图像中的前景像素和背景像素稳定不变为止。

2. 聚类法聚类法是一种常用的阈值寻找方法。

该方法基于聚类分析的思想,将图像中的像素分为多个簇。

这些簇是按照图像灰度值进行排序的,每个簇的中心都对应一种不同的灰度值。

在这种情况下,我们可以寻找显著区分不同灰度值区间的簇,以确定阈值。

3. 最大间隔法最大间隔法是一种基于统计学原理的方法,它可以有效地找到分离前景像素和背景像素的最佳阈值。

user最大类间方差方法选择阈值进行分割相关概念、原理、数学基础及算法

user最大类间方差方法选择阈值进行分割相关概念、原理、数学基础及算法

最大类间方差法(OTSU算法)是一种常用的图像分割方法,它通过计算图像的类间方差来确定分割阈值。

以下是关于最大类间方差法选择阈值进行分割的相关概念、原理、数学基础及算法的简要介绍:
1.概念:
最大类间方差法是一种基于全局的二值化算法,它根据图像的灰度特性,将图像分为前景和背景两个部分。

当取最佳阈值时,两部分之间的差别应该是最大的。

2.原理:
最大类间方差法的原理是:对图像的灰度级直方图进行标准化处理,得到一个概率分布。

以灰度级k为阈值,可将该图像中的像素块二分为两大类C0和C1(背景和前景,反之亦然)。

其中,C0表示灰度级在范围[0, 1, ..., k-1]的像素集合;C1表示灰度级在范围[k, k+1, ..., L-1]的像素集合。

背景和前景之间的类间方差如果越大,就说明构成图像的两个部分之间的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。

因此,使类间方差最大的分割意味着错分概率最小。

3.数学基础:
最大类间方差法的数学基础是概率分布和方差。

通过计算灰度级直方图,可以得到图像的概率分布。

然后,通过计算不同阈值下的类间方差,选择使类间方差最大的阈值作为最佳分割阈值。

4.算法:
最大类间方差法的算法包括以下步骤:
(1)对图像的灰度级直方图进行标准化处理,得到一个概率分布。

(2)遍历所有可能的阈值,计算每个阈值下的类间方差。

(3)选择使类间方差最大的阈值作为最佳分割阈值。

(4)根据最佳分割阈值将图像二分为前景和背景两个部分。

以上是关于最大类间方差法选择阈值进行分割的相关概念、原理、数学基础及算法的简要介绍。

阈值分割算法

阈值分割算法
阈值分割算法,指的是一种实现图像分割的算法。

其基本思想是将图
像中的像素按照其灰度值进行分类,利用不同的阈值进行分割,从而
实现对图像的分割。

阈值分割算法常用于图像处理中的目标检测、图
像增强、图像分割等领域。

阈值分割算法具体操作流程如下:
1. 首先将图像灰度化,即将图像中的每个像素转换为对应的灰度值。

2. 对于二值图像,阈值一般取128;对于灰度图像,可使用大津法等方法得到最佳阈值。

3. 对于RGB图像,需要先将其转换为灰度图像后再进行阈值分割。

4. 根据设定的阈值,将灰度图像中的像素分为两类,一类是大于或等
于阈值的像素点,另一类是小于阈值的像素点。

这就实现了图像的分割。

5. 分割后的图像,可以根据需要进行后续处理,如二值化、图像去噪、形态学处理等。

阈值分割算法在实际应用中广泛使用,其优点在于简单易懂、计算量小、可高效实现。

同时,该算法在多个领域都有应用,如医学图像分割、海洋遥感图像分割等。

总之,阈值分割算法是一种在图像处理领域应用广泛的算法。

能够实现图像的快速分割,并可根据需求进行后续处理。

阈值分割原理

阈值分割原理介绍阈值分割是一种常用的图像处理技术,用于将图像分为不同的区域,以实现目标检测和图像分析等应用。

本文将详细介绍阈值分割的原理和应用。

原理阈值分割的原理是基于图像的灰度级别将像素分为不同的区域。

首先,选择一个阈值。

然后,将图像的每个像素与该阈值进行比较,将像素值超过阈值的像素归为一个区域,将像素值低于阈值的像素归为另一个区域。

这样就实现了图像的分割。

应用阈值分割在很多图像处理技术中都有广泛的应用。

下面列举了一些常见的应用场景。

1. 目标检测阈值分割可用于目标检测。

通过将高于某个阈值的像素视为目标,就可以在图像中提取出目标区域。

2. 图像分析阈值分割可用于图像分析。

例如,可以将图像中的背景与前景分离,从而实现图像的特征提取和目标识别。

3. 图像增强阈值分割可以用于图像增强。

通过调整阈值的大小,可以改变图像的亮度和对比度,从而提升图像的质量。

阈值分割可以将图像分割成不同的区域。

这对于图像分析和图像处理来说是非常重要的,可以提取出图像中的各个部分以进行进一步的处理和分析。

阈值选择方法选择合适的阈值是阈值分割的一个关键步骤。

下面介绍几种常见的阈值选择方法。

1. 固定阈值固定阈值是一种简单直观的阈值选择方法。

通过计算图像的全局平均值或者直方图的峰值来确定一个固定的阈值。

但是这种方法无法处理光照不均匀或者图像噪声较大的情况。

2. 自适应阈值自适应阈值是一种根据图像局部特性来选择阈值的方法。

它将图像分成若干个子区域,在每个子区域内计算局部平均值或者局部直方图的峰值,作为该子区域的阈值。

这样能够有效处理光照不均匀和噪声干扰的情况。

3. 基于聚类的阈值选择基于聚类的阈值选择方法将像素值作为聚类的特征,通过聚类分析来选择阈值。

常见的方法有Otsu算法和K-means算法。

这种方法可以自动选择最佳的阈值,适用于不同类型的图像。

优化技术为了提高阈值分割的性能和效果,可以采用一些优化技术。

1. 预处理在进行阈值分割之前,可以对图像进行预处理。

医学影像处理常见算法介绍

医学影像处理常见算法介绍医学影像处理是指将医学图像通过计算机技术进行处理和分析,以研究和诊断患者的病情。

医学影像处理算法类别繁多,本文将针对常见的算法进行介绍。

一、图像增强算法图像增强算法用于提高图像的视觉效果,使图像更具有清晰度和对比度。

其中,灰度拉伸技术是最为常见的图像增强算法之一,其基本原理是通过调整图像像素的灰度级别来增强图像的对比度和亮度。

图像的灰度值是非常重要的一个指标,可以通过调整灰度值的分布范围来使图像具有更高的视觉可分性。

二、图像分割算法图像分割算法用于将医学图像中具有特定生物学意义或特征的区域单独提取出来。

其中,阈值分割是最常用的分割算法之一,其基本原理是通过设定一定的灰度值阈值,将图像中的像素分为两组,一组大于或等于阈值,另一组小于阈值。

此外,还有区域生长分割、水平线分割等算法。

三、图像配准算法图像配准算法是将不同的图像进行对齐的一种处理方法。

医学图像在不同时间、不同视角或不同成像设备下获取可能会产生不同位置或大小的误差,这时需要对图像进行配准。

其中,基于特征点匹配的配准算法是最为常用和有效的方法之一。

四、形态学处理算法形态学处理算法可以对医学图像进行腐蚀、膨胀、开操作、闭操作等处理,进而实现对图像的分割、增强等功能。

形态学变换的基本原理是通过基于结构元素进行像素运算,改变图像的形状和结构。

五、滤波算法滤波算法是用于去除图像中噪声、减少图像细节等目的的算法。

其中,中值滤波是最为常见的滤波算法之一,其基本思想是将图像中每一个像素的邻域灰度值进行排序,然后取中间值作为该像素的新灰度值。

六、特征提取算法特征提取算法是从医学图像中提取出具有特定形态、大小、密度等特点的区域或者特征点。

其中,常见的算法包括主成分分析、小波变换等。

七、神经网络算法神经网络算法可以通过对大量训练数据的学习,自动地提取出医学图像中的特征,并输出正确的医学图像诊断结果。

在医学图像文献分类、疾病诊断等方面,已经得到了广泛的应用。

阈值分割

6.2 灰度阈值分割一、 阈值分割利用目标物与背景在灰度特性上的差异,设 置一个阈值T ,将目标物与背景分割开来,形成 二值图像⎩⎨⎧<≥=T y x f T y x f if y x g ),(,),(,),(01 ⎩⎨⎧>≤=T y x f T y x f if y x g ),(,),(,),(01二、 阈值选择 1. 最佳阈值目标像素占 )10(<<θθ, 背景像素占 θ-1 目标灰度概率密度)(1z p , 背景灰度概率密度)(2z pT 为分割阈值整个图像灰度概率密度函数为混合高斯密度函数22222121)(212)(21121212)1()()(μσμσσπθσπθθθ-----+=-+=z z eep z p z p目标错划为背景的概率⎰∞=T dz z p T )()(11ε背景错划为目标的概率⎰∞-=Tdz z p T )()(22ε)()1()()(21T T T εθεθε-+=0)1(0)(21=-+-⇒=∂∂p p T T θθε)()(121T p T p =-θθ22222121122)(2)()1(ln σμσμσθθσ--=---T T 当 22221σσσ== 时, θθμμσμμ--++=1ln212221T若 21=θ, 则)(2121μμ+=T 2. 双阈值法所有目标像素灰度值1T >,大多数目标像素灰度值2T > 所有背景像素灰度值2T <,大多数背景像素灰度值1T <分割过程:(1)利用2T 分割目标物(目标核心)(2)利用1T ,将灰度值大于1T 紧靠目标核心的像素并入目标3. 可变阈值法(局部阈值法)将图像分块,计算每块的直方图,若直方图为双 峰,则利用最佳阈值,若直方图为单峰,则利用 邻近小块的阈值进行内插 例:预处理(对数变换,减影、取平均去噪声)分块(256⨯256图像分成7⨯7块,块间相互重迭50%) 求直方图,确定每块的分割阈值 分割。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
* nTlreshold:经过算法处理得到的二值化分割阈值
* \返回值:
*无
* \函数说明:实现灰度图的二值化分割——最大类间方差法(Otsu算法,俗称大津算法)
*
****************************************************************************/
分享到
一键分享QQ空间新浪微博云收藏人人网腾讯微博
相册开心网腾讯朋友
贴吧豆瓣网搜狐微博
新首页QQ好友和讯微博
更多...分享登录|注册窗体顶端
窗体底端
收藏成功
确定
收藏失败,请重新收藏
确定
窗体顶端
标题
标题不能为空
网址
标签
摘要
公开
取消收藏
窗体底端
分享资讯
传PPT/文档
提问题
写博客
传资源
创建项目
创建代码片
设置昵称编辑自我介绍,让更多人了解你
帐号设置退出
社区
博客
论坛
下载
Share
极客头条
服务
CODE
英雄会
活动
CSTO
俱乐部
CTO俱乐部
高校俱乐部
奋斗斌斌的专栏
解决项目中的琐碎细节问题b.zhao_npu@
目录视图
摘要视图
订阅
有奖征资源,博文分享有内涵人气博主的资源共享:老罗的Android之旅微软Azure•英雄会编程大赛题关注CSDN社区微信,福利多多社区问答:叶劲峰游戏引擎架构
dData2 = W0-dData1;
Wa = dData1/Pa;
Wb = dData2/Pb;
dVariance[i] = (Pa*Pb* pow((Wb-Wa), 2));
}
//遍历每个方差,求取类间最大方差所对应的灰度值
double temp=0.0;
for(i=0; i<256; i++)
上式中H为统计直方图;
N为图像总的像素点数;
L为源图像总的灰度级数;
P代表源图像,其每个元素代表每个灰度级上的灰度分布(平均灰度值);
Q为分割后的二值图像,两个u分别代表两个分割后的区域的平均灰度值,其中t为分割图像所采用的阈值。
根据以上定义,以每个灰度级上的灰度和为计算量,可以很容易根据交叉熵的公式,推导出P和Q之间的交叉熵定量表达式:
根据上文所述思路,使得D最小的t即为最小交叉熵意义下的最优阈值。
作者VC实现代码如下。
[cpp]view plaincopyprint?
/*****************************************************************************
*
* \函数名称:
首先给出待分割的图像如下:
1、Otsu法(最大类间方差法)
该算法是日本人Otsu提出的一种动态阈值分割算法。它的主要思想是按照灰度特性将图像划分为背景和目标2部分,划分依据为选取门限值,使得背景和目标之间的方差最大。(背景和目标之间的类间方差越大,说明这两部分的差别越大,当部分目标被错划分为背景或部分背景错划分为目标都会导致这两部分差别变小。因此,使用类间方差最大的分割意味着错分概率最小。)这是该方法的主要思路。其主要的实现原理为如下:
dData2 = ;
Wb = dData2/Pb;
dVariance[i] = (Pa*Pb* pow((Wb-Wa), 2));
}
//遍历每个方差,求取类间最大方差所对应的灰度值
double temp=0.0;
for(i=0; i<256; i++)
int N = height*width; //总像素数
for(int i=0; i<256; i++)
{
nHistogram[i] = 0.0;
dVariance[i] = 0.0;
}
for(i=0; i<height; i++)
{
for(int j=0; j<width; j++)
{
unsigned char nData = (unsigned char)cvmGet(pGrayMat, i, j);
{
if(dVariance[i]>temp)
{
temp = dVariance[i];
nThreshold = i;
}
}
}
/*****************************************************************************
*
* \函数名称:
* OneDimentionOtsu()
*
* \输入参数:
* pGrayMat:二值图像数据
*width:图形尺寸宽度
*height:图形尺寸高度
*nTlreshold:经过算法处理得到的二值化分割阈值
* \返回值:
*无
* \函数说明:实现灰度图的二值化分割——最大类间方差法(Otsu算法,俗称大津算法)
*
****************************************************************************/
这代表的物理意义是两个分布之间信息理论距离,另外一种理解是,将分布P变为Q后所带来的信息变化。那么对于图像分割来说,如果要用分割图像来替换原来的图像,最优的分割依据应该就是使得两幅图像之间的交叉熵最小。以下对最小交叉熵法的过程进行简要总结。
可以假设上文的P为源图像的灰度分布,Q为所得到的分割图像的灰度分布,其中:
nHistogram[nData]++; //建立直方图
}
}
double Pa=0.0; //背景出现概率
double Pb=0.0; //目标出现概率
double Wa=0.0; //背景平均灰度值
double Wb=0.0; //目标平均灰度值
double W0=0.0; //全局平均灰度值
double dData1=0.0, dData2=0.0;
* MiniCross()
*
* \输入参数:
* pGrayMat:二值图像数据
* width:图形尺寸宽度
* height:图形尺寸高度
* nTlreshold:经过算法处理得到的二值化分割阈值
* \返回值:
*无
* \函数说明:实现灰度图的二值化分割——最小交叉熵算法
*
****************************************************************************/
灰度图像阈值化分割常见方法总结及VC实现
分类:图像处理OpenCV2011-11-11 23:20 7427人阅读评论(14)收藏举报
算法图形byte图像处理扩展
目录(?)[+]
Otsu法最大类间方差法
一维交叉熵值法
二维OTSU法
参考文献
在图像处理领域,二值图像运算量小,并且能够体现图像的关键特征,因此被广泛使用。将灰度图像变为二值图像的常用方法是选定阈值,然后将待处理图像的每个像素点进行单点处理,即将其灰度值与所设置的门限进行比对,从而得到二值化的黑白图。这样一种方式因为其直观性以及易于实现,已经在图像分割领域处于中心地位。本文主要对最近一段时间作者所学习的阈值化图像分割算法进行总结,全文描述了作者对每种算法的理解,并基于OpenCV和VC6.0对这些算法进行了实现。最终将源代码公开,希望大家一起进步。(本文的代码暂时没有考虑执行效率问题)
int N = height*width; //总像素数
for(int i=0; i<256; i++)
{
dHistogram[i] = 0.0;
dEntropy[i] = 0.0;
}
for(i=0; i<height; i++)
{
for(int j=0; j<width; j++)
{
unsigned char nData = (unsigned char)cvmGet(pGrayMat, i, j);
for(i=0; i<256; i++) //计算全局平均灰度
{
nHistogram[i] /= N;
W0 += i*nHistogram[i];
}
for(i=0; i<256; i++) //对每个灰度值计算类间方差
{
Pa += nHistogram[i];
Pb = 1-Pa;
dData1 += i*nHistogram[i];
nHistogram[nData]++; //建立直方图
}
}
double Pa=0.0; //背景出现概率
double Pb=0.0; //目标出现概率
double Wa=0.0; //背景平均灰度值
double Wb=0.0; //目标平均灰度值
double W0=0.0; //全局平均灰度值
double dData1=0.0, dData2=0.0;
dHistogram[nData]++; //建立直方图
}
}
double Pa=0.0; //区域1平均灰度值
double Pb=0.0; //区域2平均灰度值
double P0=0.0; //全局平均灰度值
相关文档
最新文档