Python opencv特征检测器导致分段错误
我使用的是Python2.7和opencv版本2.4.2。我遇到了分割错误的问题。 以下是我尝试的代码:Python opencv特征检测器导致分段错误,python,opencv,image-processing,Python,Opencv,Image Processing,我使用的是Python2.7和opencv版本2.4.2。我遇到了分割错误的问题。 以下是我尝试的代码: import cv2 img = cv2.imread(img_path) img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) detector = cv2.FeatureDetector_create("SURF") # or "SIFT" kp = detector.detect(img2) 最后一行导致分割错误,我不明白为什么。我意识到至少还有
import cv2
img = cv2.imread(img_path)
img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
detector = cv2.FeatureDetector_create("SURF") # or "SIFT"
kp = detector.detect(img2)
最后一行导致分割错误,我不明白为什么。我意识到至少还有另一篇关于这个主题的帖子,即:
但这似乎并不能解决我的问题
任何帮助都将不胜感激!谢谢 >我很肯定<代码> CV2..TyrestDebug(CREATE)()/CODE >实际上只在C++接口中。您希望执行以下操作:
import numpy as np
import cv2
img = cv2.imread(img_path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
surf = cv2.SURF()
mask = np.uint8(np.ones(gray.shape))
surf_points = surf.detect(gray, mask)
我使用的是Ubuntu 12.04,其中包括OpenCV 2.3.1。我想要一个更新版本的OpenCV,所以我找到了一个带有OpenCV 2.4.5后端口的PPA。当我尝试使用I
cv2.FeatureDetector\u create(“SURF”)
和cv2.FeatureDetector\u create(“SIFT”)
时,我遇到了分段错误,正如您所做的一样。我意识到这两种方法都是非自由的,并注意到我的OpenCV安装缺少libopencv-nonfree2.4
包。我切换到另一个包含它的PPA,这似乎解决了问题。您是否尝试显示img或检查它是否正确读取?是的,在我尝试检测功能之前,一切正常。好的一点是,有时候很简单:)如果您尝试cv2.Feature2D\u create('SURF')
,会发生什么?对于我来说,它似乎具有相同的功能。不幸的是,Feature2D_create()在这个版本的opencv(AttributeError…)中似乎不可用。我读得越多,我就越觉得在最近的版本之间一定有很多变化!谢谢你的回答。事实证明,这个版本的opencv没有编码SURF属性(cv2.SURF()生成:“AttributeError:‘module’对象没有属性‘SURF’)。我想知道python和opencv版本(分别为2.7和2.4.2)之间是否存在不兼容问题?我正在运行python 2.7.2和opencv 2.4.5。是否导入cv2
然后导入cv2.SURF()
空闲时出错?哦,也有cv2.SURF.detect(image[,mask])-->关键点,但它可能对您可用。它确实不可用。但是,您可能有一点:也许我应该更新到2.4.5,它看起来可以解决我的问题(并不是说我很想这样做,我记得安装时有很多麻烦:))如果您使用的是Windows设备,您可以获得。还有用于其他系统的二进制文件和软件包。SIFT和SURF是获得专利的非自由算法。一些软件包经理对此非常挑剔