赞
踩
更多内容关注公众号:数学的旋律
① 特征检测/提取(feature detection):
特征检测/提取的过程指从每一幅图像中寻找那些能在其他图像中较好匹配的位置。
另外需要注意的是,这里也涉及图像分割的内容。分割将图像细分为构成它的子区域或物体。细分的程度取决于要解决的问题。也就是说,在应用中,当感兴趣的物体或区域已经被检测出来时,就停止分割。
② 特征描述(feature description):
特征描述即把检测到的关键点周围的每一个区域转化成一个更紧凑和稳定(不变的)的描述子。
使用图像分割的方法将一幅图像分割成多个区域后,分割后的像素集合经常需要以一种适合于计算机进一步处理的形式来表示和描述,此时我们可以使用特征描述子对其进行描述。
③ 特征匹配(feature matching):
特征匹配即在其他图像中高效地搜索可能的匹配候选。一旦我们从两幅或多幅图像中提取特征及其描述子,下一步就是要在这些图像之间建立一些初始化特征之间的匹配。
④ 特征跟踪(feature tracking):
特征跟踪是第三个阶段的另一种替代方法,它只在检测到的特征点周围一个小的领域内寻找匹配,因此更适合视频处理。
以上介绍将贯彻接下来要介绍的特征检测/提取、图像分割、特征描述、特征匹配、特征跟踪。
tb店铺搜:FUN STORE玩物社,专业买手挑选送礼好物
本文主要介绍灰度空间的特征检测,所讨论的特征检测跟特征提取有相同的概念,特征被检测后它可以从图像中被提取出来。我们感兴趣的三种图像特征是孤立点、线、边缘。
边缘像素是图像中灰度突变的那些像素,而边缘是相连边缘像素的集合。边缘检测器是设计用来检测边缘像素的局部图像处理方法。
一条线可视为一条边缘线段,该线两侧的背景灰度要么远亮于该线的像素的灰度,要么远暗于该线的像素的灰度。
类似的,孤立点可视为一条线,只是其长度和宽度都为一个像素。
我们在空间域滤波器中介绍过一阶微分和二阶微分的差分形式。若将函数 f ( x + Δ x ) f(x+\Delta x) f(x+Δx) 展开为关于 x x x 的泰勒级数,令 Δ x = 1 \Delta x = 1 Δx=1,且只保留该级数的线性项,结果数字差分是:
∂ f ∂ x = f ′ ( x ) = f ( x + 1 ) − f ( x ) {∂f\over ∂x} = f'(x) = f(x+1) - f(x) ∂x∂f=f′(x)=f(x+1)−f(x) 对上式关于 x x x 微分,我们得到一个二阶导数表达式:
∂ 2 f ∂ x 2 = ∂ f ′ ( x ) ∂ x = f ′ ( x + 1 ) − f ′ ( x ) = f ( x + 2 ) + f ( x ) − 2 f ( x + 1 ) {∂^2f\over ∂x^2} = {∂f'(x)\over ∂x} = f'(x+1) - f'(x) = f(x+2) + f(x) - 2f(x+1) ∂x2∂2f=∂x∂f′(x)=f′(x+1)−f′(x)=f(x+2)+f(x)−2f(x+1) 这一展开是关于点 x + 1 x+1 x+1 的,我们的兴趣是关于点 x x x 的二阶导数,故将上式中的变量减1后,得到
∂ 2 f ∂ x 2 = f ′ ′ ( x ) = f ( x + 1 ) + f ( x − 1 ) − 2 f ( x ) {∂^2f\over ∂x^2} = f''(x) = f(x+1) + f(x-1) - 2f(x) ∂x2∂2f=f′′(x)=f(x+1)+f(x−1)−2f(x)
① 一阶导数通常在图像中产生较粗的边缘。
② 二阶导数对精细细节,如细线、孤立点和噪声有较强的响应。
③ 二阶导数在灰度斜坡和灰度台阶过渡处会产生双边缘响应。
④ 二阶导数的符号可用于确定边缘的过渡是从亮到暗还是从暗到亮。
孤立点的检测以二阶导数为基础,这意味着使用拉普拉斯算子(详细可见空间域滤波器):
∇ 2 f ( x , y ) = f ( x + 1 , y ) + f ( x − 1 , y ) + f ( x , y + 1 ) + f ( x , y − 1 ) − 4 f ( x , y ) \nabla^2f(x,y) = f(x+1,y) + f(x-1,y) + f(x,y+1) + f(x,y-1) - 4f(x,y) ∇2f(x,y)=f(x+1,y)+f(x−1,y)+f(x,y+1)+f(x,y−1)−4f(x,y) 输出是使用如下表达式得到的:
g ( x , y ) = { 1 , ∣ R ( x , y ) ≥ T | 0 , 其他 g(x,y) =
复杂度更高的检测是线检测。对于线检测,可以预期二阶导数将导致更强的响应,并产生比一阶导数更细的线。我们可以使用拉普拉斯算子,另外,必须适当处理二阶导数的双线效应,这里可以使用拉普拉斯的正值实现。
通常,我们的兴趣在于检测特定方向的线,对于不同方向的线,我们可以使用以下模板(其中角度是相对于正x轴度量的角度):
边缘检测基于灰度突变。边缘的三种模型分别为:台阶模型、斜坡模型、屋顶边缘模型,如图1所示:
一阶导数的幅度可用于检测图像中的某个点处是否存在一个边缘(存在边缘则导数不为0);二阶导数的符号可用于确定一个边缘像素是位于该边缘的暗测还是位于该边缘的亮侧(正为暗、负为亮)。
围绕一条边缘的二阶导数有两个附加性质:① 对图像中的每条边缘,二阶导数生成两个值(一个不希望的特点);② 二阶导数的零交叉点可用于定义粗边缘的中心,具体见图2。
执行边缘检测有以下三个步骤:
① 为降噪对图像进行平滑处理。
② 边缘点的检测。这是一个局部操作,从一幅图像中提取所有的点,这些点是变为边缘点的潜在候选者。
③ 边缘定位。这一步的目的是从候选边缘点中选择组成边缘点集合的真实成员。
以下讨论实现这三个步骤的一些技术。
以下边缘检测使用一阶导数。
① Roberts算子
Roberts算子以求对角像素之差为基础,该算子用于识别对角线方向的边缘:
g x = ( z 9 − z 5 ) 和 g y = ( z 8 − z 6 ) g_x = (z_9 - z_5)\ \ \ 和\ \ \ g_y = (z_8 - z_6) gx=(z9−z5) 和 gy=(z8−z6) 模板如下图所示:
② Prewitt算子
Prewitt算子使用以 z 5 z_5 z5 为中心的 3 × 3 3\times 3 3×3 邻域对 g x g_x gx 和 g y g_y gy 的近似如下式所示:
g x = ( z 7 + z 8 + z 9 ) − ( z 1 + z 2 + z 3 ) g_x = (z_7 + z_8 + z_9) - (z_1 +z_2 +z_3) gx=(z7+z8+z9)−(z1+z2+z3) g y = ( z 3 + z 6 + z 9 ) − ( z 1 + z 4 + z 7 ) g_y = (z_3 + z_6 + z_9) - (z_1 +z_4 +z_7) gy=(z3+z6+z
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。