问题标签 [sift]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - David Lowe 的 SIFT——关于尺度空间和图像坐标的问题(奇怪的偏移问题)
我意识到这是一个高度专业化的问题..但是这里有。我正在使用 SIFT 的实现来查找两个图像上的匹配项。使用我当前的实现,当我将图像与 90 度或 180 度版本匹配时,我得到的匹配一致地偏离了大约半个像素,但它在一个范围内变化。因此,例如,如果在 im1 中的像素坐标 (x,y) 处找到匹配项,则其 90 度旋转图像 im2 中的对应匹配项位于 (x,y + 0.5) 处。如果我使用 180 度图像,则偏移量出现在 x 和 y 坐标中,如果我使用 270 度 (-90) 旋转图像,则仅在 x 中出现。
1)首先,我假设 SIFT 应该在旋转图像中给我相同的匹配位置。一个隐含的假设是旋转不会改变我确认为真的图像的像素值。(我使用 IRFAN View 旋转并保存为 .pgm 并且像素值保持不变)。
2)我有其他没有给出这个偏移量的实现。
3)我假设这个偏移量与编程相关,并且可能与从比例空间关键点坐标到图像空间关键点坐标的转换有关。
我希望有人遇到过这个问题,或者可以向我指出如何从比例空间转换为图像空间的参考。
computer-vision - David Lowe 的 SIFT 和 Scale Space to Pixel Space - 图像边框边缘的箭头
我一直在使用许多 SIFT 的实现。绘制时的某些特征会超出图像的边缘。他们倾向于使用 6 * sigma 的转换来从尺度空间转换为像素空间,作为用于计算描述符的区域半径的近似值。
如果它大于图像,我不明白箭头如何表示用于计算描述符的区域的半径。包括图像外部的空白空间来计算描述符会使其不稳定且不可靠,因此我不明白为什么如果箭头表示计算描述符的区域的半径,为什么箭头会比图像大。这似乎在我见过的所有 SIFT 实现中都很常见。
这是一张来自 David Lowe 2004 年论文第 15 页示例的图片:
http://maym86.com/post/6751229699/how-can-sift-features-extend-over-the-borders-of
matlab - SIFT关键点检测器
在http://www.cs.ubc.ca/~lowe/keypoints/运行 SIFT 演示程序后,似乎 jpg 文件没有任何变化。有谁知道它是如何工作的?
非常感谢。
matlab - SIFT-如何在超过 2 张图像中找到相似度
我知道如何将 2 个图像与 SIFT(在 matlab 中)进行比较,但是如果我必须找到多个图像之间的相似性怎么办。例如,我有 30 张图片。我如何使用 SIFT 说其中 10 个有 30% 匹配,其中 5 个有 95% 匹配?我可以使用聚类,但在此之前我需要某种可以应用聚类技术的值。我被这个问题困扰了几个小时。所以知道的朋友请帮帮我。
谢谢
python - OpenCV Python 和 SIFT 功能
我知道有很多关于Python和OpenCV的问题,但我没有找到关于这个特殊主题的帮助。
我想从 python OpenCV 中的图像中提取SIFT 关键点。
我最近安装了 OpenCV 2.3,可以访问 SURF 和 MSER 但不能访问 SIFT。我在 python 模块(cv 和 cv2)中看不到任何与 SIFT 相关的东西(我有点撒谎:有 2 个常量:cv2.SIFT_COMMON_PARAMS_AVERAGE_ANGLE
和cv2.SIFT_COMMON_PARAMS_FIRST_ANGLE
)。
这让我困惑了一段时间。这是否与 OpenCV 的某些部分在 C 中而其他在 C++ 中的事实有关?任何想法?
PS:我也尝试过 pyopencv(OpenCV <= 2.1 的另一个 python 绑定)但没有成功。
opencv - 筛选描述符提取器
我有 2 个关于 opencv SiftDescriptorExtractor 的问题:
- 如何将描述符从转换
cv::Mat
为vector<float* >
(第 i 行 = 第 i 个描述符) - 如何定义 SIFT 描述符的大小(= 维度)?
是的,我知道 OpenCV 参考,但是,我无法让它工作。有人可以在这里放最低工作示例吗?
opencv - SIFT 在 OpenCV 的参考图像中没有找到任何特征
我有一个目标徽标的图像,我试图用它来在其他图像中查找目标徽标。我目前正在运行两种不同的检测算法来帮助我检测图像上的任何徽标。我使用的第一个检测是基于直方图的,我在其中搜索图像以查找屏幕上颜色非常相似的一般区域。从那里我运行 SIFT 以进一步获取我正在寻找的对象。这适用于大多数徽标,但是我拥有的 Target 徽标甚至没有拾取徽标中的关键点。
我想知道是否有什么我可以做的来帮助定位图像中的一些关键点。任何意见是极大的赞赏。
以下是 SIFT 未拾取的图像:
提前致谢。
编辑 我厌倦了使用 Julien 的基于模板匹配的想法以及模型的不同比例和旋转,但仍然没有得到什么结果。我已经包含了一个我试图测试的图像。
c - SiftDescriptorExtractor 导致内存泄漏
我目前正在实施 SIFT 以从图像中提取特征点,并注意到在获取描述符时出现内存泄漏。无论如何我可以释放课堂上可能附加的内存吗?
编辑 向代码块添加了更多详细信息
任何意见是极大的赞赏。谢谢。
c++ - 解释这个算法(比较SURF算法中的点)
我需要知道这个算法是否是已知的:
这比较了SURF算法的结果。
- 这是最近邻算法?看起来 func 正在搜索每个点的最近点。
- 我可以使用 Quadtree 或 kd-tree 做同样的事情吗?
- 有更好的算法来比较图像点并知道它们是否相同或相似?
- 最好我想将它们存储到 mysql 中并构建一个 kd-tree 来比较所有图像中的 1 个图像,这可能吗?
- RANSAC 对这项任务有什么用?
- 有什么方法可以捕捉误报?
c++ - SIFT 和关键点
我想问一下 SIFT 算法是如何在 C++ 中完成的。
我了解 SIFT 提取关键点。在这种情况下,SIFT 算法提取的关键点所代表的值是多少?以及如何比较和检测相似的关键点?
我将在我的论文中使用 SIFT。有人可以以更简单的方式与我讨论这个问题吗?我是一名优秀的程序员,但我似乎无法理解如何实现 SIFT。我还没有关于图像处理的课程。