特征检测的基本概念
特征检测是计算机视觉和图像处理中的一个概念。它是指使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征检测的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域
特征检测包括边缘检测、角检测、区域检测和脊检测
特征检测应用场景:
- 图像搜索,比如以图搜图
- 拼图游戏
- 图像拼接
- …
以拼图游戏为例来说明特征检测的应用流程
- 寻找特征
- 特征是唯一的(如果每个地方都有该特征,那我们就无从下手了)
- 特征是可追踪的
- 特征是能比较的
因此:
A、B(蓝色框)不是特征 ——> 不是唯一的
C、D(黑色框)不是特指 ——> 不是唯一的
E、F(红色框)是特征 ——> 唯一、可追踪、能比较
我们发现:
- 平坦部分(A、B)很难找到它在原图的位置
- 边缘部分(C、D)相对平坦部分好找一些,但是无法唯一确定
- 角点(E、F)可以一下就找到其在原图中的位置 ——> 角点不是边缘!而是拐角
图像特征就是值有意义的区域,具有独特性、易于识别性
Harris角点检测
在图像特征中最重要的就是角点,哪些是角点呢?
- 灰度梯度最大值对应的像素(附近是不同的颜色!如高楼边角一边是墙壁的颜色一边是天空的颜色)
- 两条线的交点(两个边缘就是两条线)
- 图像中灰度值的极值点(一阶导数最大,二阶导数为0)
三幅图对应三种情况:
图一在平坦位置向四周移动,灰度值变化都不大;图二上下移动灰度值变化不大,左右移动灰度值变化剧烈;图三无论朝着哪个方向移动,灰度值都剧烈变化
原理
图像I(x,y)
,当在点(x,y)
处平移(△x,△y)
后的自相似性:
自相似性:移动后与原来点相似度有多少,其实就是差异;具体是上一个位置框的像素值 - 下一个框的像素值