边缘检测
- 格式:doc
- 大小:58.50 KB
- 文档页数:3
边缘检测算法流程边缘检测是计算机视觉和图像处理中的一项关键技术。
它通过识别图像中像素强度变化的区域来提取图像的重要特征。
以下是边缘检测算法的主要流程:1.图像预处理预处理是边缘检测的第一步,主要目的是改善图像质量,为后续的边缘检测操作做准备。
预处理步骤可能包括灰度转换、噪声去除、平滑等。
这些步骤可以帮助消除图像中的噪声,并使图像的特征更加突出。
2.滤波处理滤波处理的目的是减少图像中的噪声,同时保留边缘信息。
常用的滤波器包括高斯滤波器、中值滤波器等。
滤波处理有助于提高后续边缘检测的准确性。
3.边缘检测算子边缘检测算子是边缘检测算法的核心。
常见的算子包括Sobel算子、Prewitt 算子、Canny算子等。
这些算子通过特定的数学运算来识别和提取图像中的边缘。
算子将根据图像局部像素的强度变化来确定边缘。
4.后处理后处理是对检测到的边缘进行进一步处理和优化。
这可能包括去除假阳性边缘(即非实际边缘的误检测)、连接断裂的边缘、平滑边缘等。
后处理有助于提高边缘检测结果的准确性和可解释性。
5.阈值处理阈值处理是用来确定哪些边缘是显著的,哪些不是。
通过设置一个阈值,可以将边缘检测结果转化为二值图像,其中显著的边缘被标记为特定值(通常是1),不显著的边缘被标记为0。
这有助于简化分析和降低计算复杂性。
6.边缘特征提取边缘特征提取是提取已检测到的边缘的特征的过程。
这可能包括测量边缘的角度、长度、形状等属性。
这些特征可以用于进一步的图像分析和理解,例如对象识别或场景分类。
7.性能评估性能评估是评估边缘检测算法效果的步骤。
评估指标可能包括边缘检测的准确性、计算效率、鲁棒性等。
评估也可以采用定量方法,如比较人工标定的真实边缘与检测到的边缘的相似性。
此外,还可以通过比较不同算法的检测结果来评估性能。
性能评估有助于改进和优化算法,提高其在实际应用中的表现。
边缘检测实验报告边缘检测实验报告引言:边缘检测是图像处理中的一项重要任务,它能够有效地提取图像中物体的边界信息,为后续的图像分割、物体识别等任务提供基础。
本实验旨在探究不同的边缘检测算法在不同场景下的表现,并对其进行评估和比较。
一、实验背景边缘检测是图像处理领域的经典问题,早期的边缘检测算法主要基于梯度的计算,如Sobel、Prewitt等。
随着深度学习的发展,基于卷积神经网络的边缘检测方法也取得了显著的进展。
本实验将选择传统的Sobel算子和基于深度学习的Canny算法进行对比。
二、实验步骤1. 数据准备:选择一组包含不同场景、不同复杂度的图像作为实验数据集,确保数据集的多样性和代表性。
2. 算法实现:使用Python编程语言,利用OpenCV库实现Sobel算子和Canny 算法。
对于Sobel算子,我们将尝试不同的卷积核大小和阈值设置。
对于Canny算法,我们将调整高低阈值的取值范围。
3. 实验评估:使用评估指标来衡量不同算法的性能,如准确率、召回率、F1值等。
同时,我们还可以通过可视化的方式来比较不同算法的边缘检测效果。
三、实验结果在实验中,我们选择了10张不同类型的图像进行边缘检测,并使用Sobel算子和Canny算法进行处理。
通过对比实验结果,我们得出以下结论:1. Sobel算子:- 当卷积核大小较小(如3x3)时,Sobel算子能够较好地检测到图像中的细节边缘,但对于噪声较多的图像效果较差。
- 当卷积核大小较大(如7x7)时,Sobel算子能够更好地抑制噪声,但会导致边缘检测结果的模糊。
- 阈值的设置对Sobel算子的效果也有较大影响,较低的阈值可以提高边缘检测的敏感性,但也容易引入噪声。
2. Canny算法:- Canny算法基于梯度的计算和非极大值抑制,能够有效地检测到图像中的边缘,并且对噪声有较好的鲁棒性。
- 高低阈值的设置对Canny算法的效果影响较大,合适的阈值范围可以提高边缘检测的准确性和稳定性。
几种常用边缘检测算法的比较边缘检测是在数字图像上寻找图像亮度变化的过程,它对于图像处理和计算机视觉任务非常重要。
常见的边缘检测算法有Sobel算子、Prewitt算子、Roberts算子和Canny边缘检测算法。
本文将对这几种算法进行比较。
1. Sobel算子:Sobel算子是一种常见的边缘检测算法,它通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Sobel算子具有简单、快速的优点,可以检测水平和垂直方向的边缘,但对于斜向边缘检测效果较差。
2. Prewitt算子:Prewitt算子也是一种常用的边缘检测算法,它类似于Sobel算子,通过计算图像像素点与其邻域像素点之间的差异来检测边缘。
Prewitt算子可以检测水平、垂直和斜向边缘,但对于斜向边缘的检测结果可能不够精确。
3. Roberts算子:Roberts算子是一种简单的边缘检测算法,它通过计算图像像素点与其对角线方向上的邻域像素点之间的差异来检测边缘。
Roberts算子计算简单,但对于噪声敏感,容易产生干扰边缘。
4. Canny边缘检测算法:Canny边缘检测算法是一种经典的边缘检测算法,它包含多个步骤:高斯滤波、计算梯度、非最大抑制和双阈值处理。
Canny算法具有良好的边缘定位能力,并且对于噪声和细节边缘具有较好的抑制效果。
但Canny算法计算复杂度较高,在处理大规模图像时可能较慢。
综上所述,不同的边缘检测算法具有各自的优缺点。
若要选择适合应用的算法,需要综合考虑图像特点、计算复杂度和应用需求等因素。
如果对图像边缘的方向要求不高,可以选择Sobel或Prewitt算子;如果对图像边缘的方向要求较高,可以选择Canny算法。
另外,为了获得更好的边缘检测结果,通常需要进行适当的预处理,如灰度化、滤波和阈值处理等。
最后,对于不同的应用场景,可能需要使用不同的算法或算法组合来满足特定需求。
边缘检测-edge detection1.问题描述边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。
图像属性中的显著变化通常反映了属性的重要事件和变化。
这些包括(i)深度上的不连续、(ii)表面方向不连续、(iii)物质属性变化(iv)场景照明变化。
边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。
边缘检测的评价是指对边缘检测结果或者边缘检测算法的评价。
诚然,不同的实际应用对边缘检测结果的要求存在差异,但大多数因满足以下要求:1)正确检测出边缘2)准确定位边缘3)边缘连续4)单边响应,即检测出的边缘是但像素的2.应用场合图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。
有许多方法用于边缘检测,它们的绝大部分可以划分为两类:基于查找一类和基于零穿越的一类。
基于查找的方法通过寻找图像一阶导数中的最大和最小值来检测边界,通常是将边界定位在梯度最大的方向。
基于零穿越的方法通过寻找图像二阶导数零穿越来寻找边界,通常是Laplacian过零点或者非线性差分表示的过零点。
3.研究历史和现状边缘检测作为图像处理的一个底层技术,是一个古老又年轻的课题,有着悠久的历史。
早在1959年,B.Julez就提到过边缘检测,随后,L.G.Robert于1965年对边缘检测进行系统的研究。
3.1一阶微分算子一阶微分算子是最原始,最基本的边缘检测方法,它的理论依据是边缘是图像中灰度发生急剧变化的地方,而图像的提督刻画了灰度的变化速率。
因此,通过一阶微分算子可以增强图像中的灰度变化区域,然后对增强的区域进一步判断边缘。
在点(x,y)的梯度为一个矢量,定义为:梯度模值为:梯度方向为:根据以上理论,人们提出了许多算法,经典的有:Robert算子,Sobel算子等等,这些一阶微分算子的区别在于算子梯度的方向,以及在这些方向上用离散化数值逼近连续导数的方式和将这些近似值合成梯度的方式不同。
边缘检测的原理边缘检测是图像处理中的一项重要技术,它可以用于图像分割、物体识别等领域。
本文将从边缘的定义、边缘检测方法、常见算法优缺点等方面详细介绍边缘检测的原理。
一、边缘的定义在图像中,边缘通常被定义为两个不同区域之间的分界线。
这些区域可以是具有不同颜色、纹理或亮度等特征的区域。
在数字图像中,边缘通常表示为像素值突然变化的位置。
二、边缘检测方法目前,常见的边缘检测方法主要包括基于梯度算子、基于模板匹配和基于机器学习等方法。
1. 基于梯度算子基于梯度算子的边缘检测方法是最为常用和经典的方法之一。
该方法通过计算图像灰度值变化率来确定图像中物体与背景之间的分界线。
其中,Sobel算子和Canny算子是最为常用的两种梯度算子。
Sobel算子是一种3x3或5x5大小的卷积核,它可以计算出每个像素点周围8个邻居像素的梯度值,并将这些梯度值进行加权平均。
Sobel 算子通常被用于检测图像中边缘的方向和强度。
Canny算子是一种基于高斯滤波器和非极大值抑制的边缘检测方法。
该算法首先使用高斯滤波器对图像进行平滑处理,然后计算每个像素点的梯度值和方向。
接着,通过非极大值抑制来消除非边缘像素,并使用双阈值法来确定弱边缘和强边缘。
2. 基于模板匹配基于模板匹配的边缘检测方法是一种基于特定形状模板的技术。
该方法通过在图像上移动一个预定义的模板,来寻找与模板匹配的区域。
当模板与图像中某个区域完全匹配时,就可以确定该区域为边缘。
3. 基于机器学习基于机器学习的边缘检测方法是一种新兴技术,它通过训练分类器来自动识别图像中的边缘。
该方法通常需要大量标记数据来训练分类器,并且需要考虑特征选择、分类器设计等问题。
三、常见算法优缺点1. Sobel算子优点:计算简单,速度快,适用于实时处理。
缺点:对噪声敏感,容易产生虚假边缘。
2. Canny算子优点:能够检测到细节和弱边缘,能够消除噪声和虚假边缘。
缺点:计算复杂,速度慢,需要调整参数以获得最佳效果。
边缘检测的原理概述边缘检测是计算机视觉领域中一种常用的图像处理技术,用于检测图像中的边缘信息。
边缘是指图像中灰度级发生突变的区域,通常表示物体的轮廓或对象的边界。
边缘检测在很多图像处理应用中起着重要的作用,如图像分割、目标检测、图像增强等。
基本原理边缘检测的基本原理是利用像素点灰度值的变化来检测边缘。
在数字图像中,每个像素点都有一个灰度值,范围通常是0到255。
边缘处的像素点灰度值变化较大,因此可以通过检测像素点灰度值的梯度来找到边缘。
常用算法1. Roberts算子Roberts算子是一种基于差分的边缘检测算法。
它通过计算相邻像素点之间的差值来检测边缘。
具体计算方式如下:1.将图像转换为灰度图像。
2.将每个像素点与其相邻的右下方像素点(即(i,j)和(i+1,j+1))进行差值计算。
3.将每个像素点与其相邻的右上方像素点(即(i,j+1)和(i+1,j))进行差值计算。
4.对上述两组差值进行平方和再开方得到边缘强度。
5.根据设定的阈值对边缘强度进行二值化处理。
2. Sobel算子Sobel算子是一种基于滤波的边缘检测算法。
它通过使用两个卷积核对图像进行滤波操作,从而获取图像中每个像素点的梯度信息。
具体计算方式如下:1.将图像转换为灰度图像。
2.使用水平和垂直方向上的两个卷积核对图像进行滤波操作。
3.将水平和垂直方向上的滤波结果进行平方和再开方得到边缘强度。
4.根据设定的阈值对边缘强度进行二值化处理。
3. Canny边缘检测算法Canny边缘检测算法是一种基于多步骤的边缘检测算法,被广泛应用于计算机视觉领域。
它在边缘检测的精度、对噪声的抑制能力和边缘连接性上都有很好的表现。
Canny算法的主要步骤包括:1.将图像转换为灰度图像。
2.对图像进行高斯滤波以减小噪声的影响。
3.计算图像的梯度和方向。
4.对梯度进行非极大值抑制,只保留局部极大值点。
5.使用双阈值算法进行边缘连接和边缘细化。
6.得到最终的边缘图像。
halcon 边缘检测算子摘要:1.边缘检测的定义和意义2.常见的边缘检测算子3.Halcon 边缘检测算子的特点和应用4.Halcon 边缘检测算子的优缺点5.结论正文:边缘检测是计算机视觉和图像处理领域的重要技术之一,其目的是从图像中提取出物体边缘的信息。
边缘检测的定义是:使用数学方法提取图像像元中具有亮度值(灰度)空间方向梯度大的边、线特征的过程。
边缘,是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。
图像的边缘对应着图像灰度的不连续性。
显然图像的边缘很少是从一个灰度跳到另一个灰度的理想状况。
真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。
边缘的锐利程度由图像灰度的梯度决定。
梯度是指灰度变化的最快的方向和数量。
常见的边缘点有三种,分别是阶梯形边缘、脉冲形边缘和屋顶形边缘。
在边缘检测中,有许多常见的边缘检测算子,如Sobel 算子、Prewitt 算子、Roberts 算子和Canny 算子等。
这些算子都有各自的特点和适用场景。
Sobel 算子主要用来检测边缘,其技术上是以离散型的差分算子,用来运算图像亮度函数的梯度的近似值。
Prewitt 算子和Roberts 算子也是常用的边缘检测算子,它们通过计算图像的梯度来检测边缘。
Canny 算子则是一种多步骤的边缘检测算法,能够检测出更加精确的边缘。
Halcon 边缘检测算子是Halcon 图像处理库中的一种边缘检测算子。
Halcon 边缘检测算子的特点是能够自适应地调整边缘检测的参数,如边缘检测的阈值、边缘检测的类型等。
这使得Halcon 边缘检测算子能够更好地适应不同的图像和应用场景。
Halcon 边缘检测算子的应用主要包括机器视觉、工业自动化、医学影像处理等领域。
Halcon 边缘检测算子的优缺点如下。
优点:首先,Halcon 边缘检测算子具有较高的检测精度和鲁棒性,能够检测出图像中的细小边缘和噪声干扰;其次,Halcon 边缘检测算子具有自适应的参数调整能力,能够适应不同图像和应用场景;最后,Halcon 边缘检测算子的计算效率较高,能够在较短的时间内完成边缘检测任务。
边缘检测的原理边缘检测是数字图像处理中的常见任务,它能够识别并提取出图像中物体的边缘信息。
在计算机视觉和模式识别领域,边缘特征对于物体识别、分割以及图像理解非常重要。
本文将介绍边缘检测的原理及其常用的方法。
一、边缘的定义边缘是图像中亮度变化剧烈处的集合。
在图像中,边缘通常表示物体之间的分界线或物体自身的边界轮廓。
边缘通常由亮度或颜色的不连续性引起,可以用于图像分析、特征提取和图像增强等应用中。
二、边缘检测的原理边缘检测的目标是找到图像中的所有边缘,并将其提取出来。
边缘检测的原理基于图像亮度的一阶或二阶变化来进行。
常用的边缘检测原理包括:1. 一阶导数方法一阶导数方法利用图像亮度的一阶导数来检测边缘。
最常见的方法是使用Sobel算子、Prewitt算子或Roberts算子计算图像的梯度,然后通过设置合适的阈值将梯度较大的像素点判定为边缘。
2. 二阶导数方法二阶导数方法通过对图像亮度进行二阶导数运算来检测边缘。
其中,Laplacian算子是最常用的二阶导数算子,它可以通过计算图像的二阶梯度来获取边缘信息。
类似于一阶导数方法,二阶导数方法也需要设定适当的阈值来提取边缘。
3. Canny算子Canny算子是一种广泛使用的边缘检测算法,它综合了一阶和二阶导数方法的优点。
Canny算子首先使用高斯滤波平滑图像,然后计算图像的梯度和梯度方向,并根据梯度方向进行非极大值抑制。
最后,通过双阈值算法检测出真正的边缘。
三、边缘检测的应用边缘检测在计算机视觉和图像处理中具有广泛的应用。
以下是一些常见的应用:1. 物体检测与分割边缘检测可以帮助识别图像中的物体并进行分割。
通过提取物体的边缘,可以实现对图像内容的理解和分析。
2. 图像增强边缘检测可以用于图像增强,通过突出图像中的边缘信息,使图像更加清晰和饱满。
3. 特征提取边缘是图像中最重要的特征之一,可以用于物体识别、图像匹配和目标跟踪等应用中。
通过提取边缘特征,可以实现对图像的自动识别和分析。
第六章边缘检测边缘(edge)是指图像局部亮度变化最显著的部分.边缘主要存庄于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征提取等图像分析的重要基础,图像分析和理解的第一步常常是边缘检测(edge detection),由于边缘检测十分重要,因此成为机器视觉研究领域最活跃的课题之一,本章主要讨论边缘检测和定位的基本概念,并通过几种常用的边缘检测器来说明边缘检测的基本问题。
图像中的边缘通常与图像亮度或图像亮度的一阶导数的不连续性有关.图像亮度的不连续可分为:①阶跃不连续,即图像亮度在不连续处的两边的象素灰度值有着显著的差异;②线条不连续,即图像亮度突然从一个值变化到另一个值,保持一个较小的行程后又返回到原来的值.在实际中,阶跃和线条边缘图像是很少见的,由于大多数传感元件具有低频特性,使得阶跃边缘变成斜坡型边缘,线条边缘变成屋顶形边缘,其中的亮度变化不是瞬间的,而是跨越一定的距离,这些边缘如图6.1所示。
对一个边缘来说,有可能同时具有阶跃和线条边缘特性.例如在一个表面上,由一个平面变化到法线方向不同的另一个平面就会产生阶跃边缘;如果这一表面具有镜面反射特性且两平面形成的棱角比较圆滑,则当棱角圆滑表面的法线经过镜面反射角时,由于镜面反射分量,在棱角圆滑表面上会产生明亮光条,这样的边缘看起来像在阶跃边缘上叠加了一个线条边缘.由于边缘可能与场景中物体的重要特征对应,所以它是很重要的图像特征.比如,一个物体的轮廓通常产生阶跃边缘,因为物体的图像亮度不同于背景的图像亮度。
在讨论边缘算子之前,首先给出一些术语的定义:边缘点:图像中亮度显著变化的点.边缘段:边缘点坐标[i,j]及其方向θ的总和,边缘的方向可以是梯度角.边缘检测器:从图像中抽取边缘(边缘点或边缘段)集合的算法.轮廓:边缘列表,或是一条边缘列表的曲线模型.边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向来排序.边缘跟踪:一个用来确定轮廓图像(指滤波后的图像)的搜索过程.边缘点的坐标可以是边缘位置象素点的行、列整数标号,也可以在子象素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用象素点尺寸大小的小线段定义,或用具有方向属性的一个点定义.请注意,在实际中,边缘点和边缘段都称为边缘。
图像处理中的边缘检测和图像分割在计算机视觉领域中,图像处理是一项非常重要的技术。
其中,边缘检测和图像分割是两个关键环节。
本文将从边缘检测和图像分割的基本概念入手,详细介绍它们的原理和应用。
一、边缘检测1、基本概念边缘是指图像中亮度、颜色等性质发生突然变化的地方。
边缘检测就是在图像中寻找这些突然变化的地方,并将它们标记出来。
在实际应用中,边缘检测可以用于目标跟踪、物体检测等方面。
2、常见方法常见的边缘检测算法有Canny、Sobel、Laplacian等。
其中,Canny算法是一种广泛使用的边缘检测算法,其基本原理是通过计算图像中每个像素点的梯度值和方向,来判断该点是否为边缘。
Sobel算法则是利用了图像卷积的思想,先对图像进行卷积操作,再计算得到每个像素点的梯度值。
Laplacian算法则是通过计算图像中每个像素点的二阶导数,来寻找亮度突变的地方。
3、应用场景边缘检测常用于在图像中寻找物体的轮廓线,或者分离图像中的前景和背景等方面。
例如在计算机视觉中的人脸识别中,边缘检测可以用于提取人脸的轮廓线,以便于后续的特征提取和匹配。
二、图像分割1、基本概念图像分割是把图像中的像素点分成不同的区域,以便于更好地理解和处理图像。
分割的结果通常是一个二值图像,其中每个像素点被标记为前景或者背景。
在实际应用中,图像分割可以用于目标检测、图像识别等方面。
2、常见方法常见的图像分割算法有阈值分割、聚类分割、边缘分割等。
其中,阈值分割是一种较为简单且常用的分割算法,其原理是为图像中每个像素点设置一个阈值,大于阈值的像素点被标记为前景,小于阈值的则为背景。
聚类分割算法则是通过对图像中像素点进行聚类操作,来划分不同的区域。
边缘分割则是利用边缘检测的结果,将图像分成前景和背景两个部分。
3、应用场景图像分割可以应用于诸如目标检测、图像识别、医学图像分析等方面。
例如在医学图像分析中,图像分割可以用于将CT或MRI图像中的组织分割成肝、肿瘤等不同的部分,以便于医生更好地进行预测和治疗决策。
1.各文件夹内容说明
●# Benchmark -- Code to run the benchmark and create web pages.
●# CSA++ -- C++ and MA TLAB wrapping of Andrew Goldberg's CSA package for graph
assignment problems. This is the computational core of the benchmark, as it allows us to compare two boundary maps while both permitting localization error and avoiding over-counting.
●# Dataset -- Convenience routines for accessing images and segmentation data. You should
make sure to download the BSDS dataset (see above), and edit the file bsdsRoot.m to point to the data.
●# Detectors -- End-user routines for various boundary detectors. Our
brightness/color/texture gradient detectors are here (pbBGTG.m and pbCGTG.m), along with baseline detectors based on the image gradient magnitude and the second moment matrix.
该文件夹中存放的是不同边缘检测算子的接口程序,供用户调用。
涉及的边缘检测算子包括BG/CG/TG和基于二阶矩的边缘检测算子。
●# Filters -- Routines for creating high quality filters and for filtering images quickly.
该文件中保存的是生成多组滤波器及相关图像与滤波器卷积等操作的函。
其中生成的滤波器器主要应用到方向能量特征OE和纹理梯度TG的计算中。
●# Gradients -- Routines to compute our brightness, color, and texture gradients efficiently.
该文件夹中存储的是生成相关梯度特征的函数。
●# Textons -- Code to compute and manipulate textons, which are the basis of the texture
gradient. The files unitex*.mat contain universal textons computed from the BSDS300 training set.
该文件夹中保存了训练好的纹理基元,纹理基元是计算纹理梯度的基础。
●# Util -- Miscellaneous support code for everything else.
2.代码中各缩写的含义
在文件夹Detectors中,各个缩写所代表的含义
BG: Brightness Gradient.亮度梯度。
CG: Color Gradient.彩色梯度。
TG: Texture Gradient.纹理梯度
OE: Oriented Energy.方向能量
2MM: the second moment matrix
GM: Gradient Magnitude.
3.彩色图像的各种边缘算子的提取方法
主要有两类边缘检测算子:方向能量(OE)和梯度,梯度包括纹理梯度(TG)、色彩梯度(CG)、亮度梯度(BG)等。
基于方向能量的边缘检测实质上是高斯二阶差分模板及其hilibert 变换生成的模板分辨与影像进行卷积,然后将卷积的结果取平方和。
三种梯度的提取过程类
似:在影像的(,)x y 位置,画一个半径为r 的圆,采用θ方向直径将影像分为两个半圆,函数
(,,,)G x y r θ度量了两个半圆的差异。
差异越大,说明影像沿θ方向存在边界的可能性越大。
实验中,均取了8个方向和3个尺度的结果。
常用的差异度量方法是两个半圆直方图的分布比较,两个直方图g 和h 的差异统计可采用2χ直方图差异算子公式(1.1)计算。
上述三种梯度算子检测的差异用于建立直方图的特征不同。
如BG 考虑的是Lab 颜色空间中的L 波段的直方图,而CG 考虑的是,a,b 波段的联合2维直方图或者边缘直方图的和。
实验中,均取了8个方向和3个尺度的结果。
22()
1(,)2i i i i g h g h g h χ-=+∑ (0.1)
3.1 亮度梯度(BG)和彩色梯度(CG)的计算
光谱梯度直接采用灰度直方图的对比;对于亮度梯度和色度梯度分别采用像素的亮度值和饱和度(chrominance )的直方图建模。
对于直方图的比较一般有两种方式,一种基于直方图概率密度。
比如采用三维颜色直方图表示区域特征,采用1L 范数或者2χ差异度量。
第
二种避免了量化过程直接采用EMD (earth mover’s distance )对比彩色颜色空间。
但是EMD 也存在计算复杂度高的问题。
文献[1]采用高斯核对彩色颜色直方图进行核概率密度估计,而后规整化;而后对直方图进行2χ差异度量。
对于灰度直方图,由L 分量的直方图计算BG 。
ab 的联合二维直方图记为ab C G ,和边界二维直方图记为a b C G +。
3.2 纹理梯度(TG)计算
首先采用2阶高斯差分滤波器和它的hilbert 变换组成滤波器组(共生成n 组),中心滤波器采用一阶高斯差分,采用上述n 个滤波器分别与影像进行卷积,每个像素点对应一个2n+1维的滤波响应向量。
之所以是2n+1维, 是因为这里是每一对奇滤波/偶滤波器均单独与影像进行卷积,没有像计算OE 时把卷积结果的平方和相加,虽然这里采用的滤波器和计算OE 时采用的滤波器是一样的。
这些向量可视为2n+1维特征空间中的点云,然后对比位于圆盘两侧的点云的差异,差异最大时圆盘对应的方向即为边缘的方向。
然而上述过程中,仍有若干问题需要细化:
1. 考虑的滤波器组是否应该是多尺度和多方向的?应该取多少个尺度?
2. 如何对比圆盘两侧对应的点云的分布?采用哪种度量方式?先估计其分布还是采用
不需要估计分布的、可直接计算的earth mover’s distance ?
3. 如果采用首先估计分布的方式,采用边缘概率的形式还是联合概率的形式?bin 采用
自适应方式确定或是直接给定?
针对上述问题,文献基于纹理基元的思想,采用自适应bin 确定方法,估计了2n+1维滤波响应的联合分布,其中n 取6。
然后,采用kmeans 聚类对13维特征向量进行聚类,聚类中心即为纹理基元(texture primitives ,the textons ),纹理的差异可通过像素的纹理基元标记直方图的差异来度量。
而上述过程仍有问题需要解决:
1. 如何确定一组通用的纹理基元,或者说纹理基元如何训练得到?
2. 纹理基元数目k 如何确定?
纹理基元的选择可以有两种途径:通过一大批具有代表性的影像,训练出一组有代表性的纹
理基元;或者针对某一幅测试影像进行聚类,将聚类重视作为纹理基元。
而聚类中心数目k 的确定与纹理基元的产生方式、纹理梯度计算的尺度以及影像的大小相关。