我知道有很多关于Python和OpenCV的问题,但是我没有找到关于这个主题的帮助。
我想从python OpenCV的图像中提取SIFT关键点。
我最近安装了OpenCV 2.3,可以访问SURF和MSER,但不能访问SIFT。我在python模块(cv和cv2)中看不到任何与SIFT相关的东西(好吧,我在说谎:有两个常量:cv2.SIFT_COMMON_PARAMS_AVERAGE_ANGLE和cv2.SIFT_COMMON_PARAMS_FIRST_ANGLE)。
这让我困惑了一段时间。这是否与OpenCV的某些部分使用C语言,而其他部分使用C++的事实有关?有什么想法吗?
附言:我也尝试过pyopencv (另一个用于OpenCV <= 2.1的python绑定),但没有成功。
发布于 2021-10-29 17:44:40
我不能说这是不是不能通过OpenCV 2.3的Python来使用SIFT的原因(正如最初的问题所问的那样)。然而,阻止SIFT包含在OpenCV中的the patent已于2020-03-06过期。
从4.4.0版本开始,OpenCV的分布式构建现在包括SIFT,可以通过Python中的cv2.SIFT_create()访问。
有关其用法的详细信息,请参阅the documentation。
发布于 2011-08-23 03:07:23
您确定允许OpenCV支持SIFT吗?SIFT是一种专有的特征类型,在美国由不列颠哥伦比亚大学和该算法的发明者David Lowe申请了专利。在我自己的研究中,我不得不多次重写这个算法。事实上,一些视觉研究人员试图避免SIFT,而使用其他比例不变的模型,因为SIFT是专有的。
发布于 2014-09-02 20:07:12
您可以使用OpenCV python绑定计算SIFT特征,如下所示:
import cv2
sift = cv2.SIFT()
keypoints, descriptors = sift.detectAndCompute(imgray,None)https://stackoverflow.com/questions/6722736
复制相似问题