Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python opencv特征检测器导致分段错误_Python_Opencv_Image Processing - Fatal编程技术网

Python opencv特征检测器导致分段错误

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) 最后一行导致分割错误,我不明白为什么。我意识到至少还有

我使用的是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)
最后一行导致分割错误,我不明白为什么。我意识到至少还有另一篇关于这个主题的帖子,即: 但这似乎并不能解决我的问题


任何帮助都将不胜感激!谢谢

>我很肯定<代码> 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是获得专利的非自由算法。一些软件包经理对此非常挑剔