gpt4 book ai didi

python - OpenCV-Python 密集 SIFT

转载 作者:太空狗 更新时间:2023-10-29 17:12:58 29 4
gpt4 key购买 nike

OpenCV 有 very good documentation on generating SIFT descriptors ,但这是“弱 SIFT”的一个版本,其中关键点由原始 Lowe algorithm 检测. OpenCV 示例内容如下:

img = cv2.imread('home.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()
kp = sift.detect(gray,None)
kp,des = sift.compute(gray,kp)

我正在寻找的是强/密集 SIFT,它不检测关键点,而是计算覆盖图像作为网格的一组补丁(例如 16x16 像素,8 像素填充)的 SIFT 描述符。据我了解,在 OpenCV 中有两种方法可以做到这一点:

  • 我可以自己将图像划分为网格,然后以某种方式将这些补丁转换为关键点
  • 我可以使用基于网格的特征检测器

换句话说,我必须将 sift.detect() 行替换为能够提供所需关键点的内容。

我的问题是 OpenCV 文档的其余部分,尤其是 Python 文档,严重缺乏,所以我不知道如何实现这些事情。我在 C++ 文档中看到有用于网格的关键点检测器,但我不知道如何在 Python 中使用它们。

另一种方法是切换到 VLFeat,它具有非常好的 DSift/PHOW 实现,但这意味着我必须从 python 切换到 matlab。

有什么想法吗?谢谢。

最佳答案

您可以在 opencv 2.4.6 < 中使用 Dense Sift。按名称创建特征检测器。

cv2.FeatureDetector_create(detectorType)

然后 "Dense" 字符串代替 detectorType

例如:-

dense=cv2.FeatureDetector_create("Dense")
kp=dense.detect(imgGray)
kp,des=sift.compute(imgGray,kp)

关于python - OpenCV-Python 密集 SIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20146570/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com