4 / 17
patch_size:patch 的大小(patch_size*patch_size)。
describe_keypoints.m 输出:
keypoints:(m*2)矩阵,行数为角点索引,即第 i 行存储的内容(x,y)就是第 i 个角点在原图中的 x 坐标和 y 坐
标。
descriptors:m*(patch_size*patch_size)矩阵,行数为角点索引,即第 i 行存储的(1*(patch_size*patch_size))数
列就是第 i 个角点的描述子。
simple_descriptor.m 输入:
patch:(patch_size*patch_size)矩阵。
simple_descriptor.m 输出:
out:(1*(patch_size*patch_size))向量,展开后的标准正态化 patch。
步骤:
1. 将 RGB 图像转化为灰度图;
2. 得出角点图 corners 中角点在原图中的坐标;
3. 计算每个角点的特征向量 v;
4. 输出描述子矩阵 descriptors。
具体实现请见 Matlab 代码及代码注释。
当检测窗口大小取 3*3,参数 k 取 0.04,边界 border 取 20 时,img1 和 img2 的 Harris 角点检测结果如
图所示:
img1 能检出 1440 个角点,img2 能检出 1585 个角点,当 patch_size 取 16 时,每个角点拥有一个 1*256
的描述子,img1 像素值特征描述 descriptors1 为(1440*256)矩阵,img2 像素值特征描述 descriptors1 为
(1585*256)矩阵,耗时大约在 0.05-0.1 秒之间。
2.2.2.
'(#$)
原理简介:
得到了 descriptors1(1440*256),descriptors2(1585*256)后,需要根据这些描述子将角点进行匹配,即计
算向量的相似性。向量相似性有多种方法进行度量,如欧氏距离,曼哈顿距离,切比雪夫距离等,这里的匹
配策略可以使用特征向量的欧氏距离来作为两幅图像中关键点的相似性判定度量。
主要方法是:取 img1 中的某个关键点,并找出其与 img2 中欧氏距离最近的前两个关键点,在这两个
关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接收这一对匹配点。