Matlab中的尺度不变特征变换(SIFT)实现

问题描述 投票:4回答:3

我正在尝试在matlab中实施SIFT。我正在跟踪Lowe的2004年论文。我完成了关键点的计算并为它们分配方向(即所有八度)。在这里,我在实现描述符之前就产生了一个疑问。如何找到其他大小倍频程中关键点的描述符。 (如果原始图像尺寸为256 * 256,则其他尺寸的八度表示为128 * 128,64 * 64)。

下面解释我的方法。

  1. 这里我拍摄了256 * 256的图像,并将八度作为256 * 256,128 * 128,64 * 64,32 * 32的图像。在每个八度中有5张图像(一张原始图像和4张模糊图像)。

  2. 我计算了所有八度的关键点和方向。 (在此,我每个八度都有2张图像。)

  3. 以八度为单位的关键点,大小为128 * 128、64 * 64、32 * 32。如果要在256 * 256图像上表示这些关键点,该如何表示? (我的怀疑是,例如64 * 64图像的关键点范围高达(64,64))。

    如果答案是将64 * 64图像插入到256 * 256。如何插入关键点(即位置,比例和方向)?

非常感谢任何建议。谢谢。

matlab image-processing computer-vision sift
3个回答
4
投票

[建议您查看VLFeat的SIFT实现(C / C ++代码周围的墨西哥包装)。深入研究源代码以找到他们在做什么以及为什么。比较Lowe的论文。


0
投票

我不确定您实际指的是什么。您是否沉迷于在matlab中复制筛选代码。如果是这样,实际上您无需将较低比例的图像中存在的关键点表示为原始比例。值与存在的八度一起存储在“向量”中。在编码的后期,可以将八度数用于进一步的计算并执行匹配功能。


0
投票

[https://youtu.be/mHWjdav8KVk选中此项以完整实施SIFT

© www.soinside.com 2019 - 2024. All rights reserved.