从Opencv导入已安装的python模块x.features2d

时间:2016-04-01 13:24:03

标签: python opencv

我已经在我的Ubuntu 14.04系统上安装了Opencv3模块,并且子模块的安装完成没有问题。但是当我在导入cv2后在我的代码中调用x.features2d时,如下面的代码所示

import sys
import cv2
import cv2.xfeatures2d
import numpy as np
sys.path.append('/usr/local/lib/python2.7/site-packages')
img_bgr=cv2.imread('sc2.png')
img_gray=cv2.cvtColor(img_bgr,cv2.COLOR_BGR2GRAY)
template=cv2.imread('template.png',0)
w, h=template.shape[::-1]
res=cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold=0.7
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]):
 cv2.rectangle(img_bgr, pt, (pt[0]+w, pt[1]+h), (0,255,0), 2)
freakExtractor=cv2.xfeatures2d.FREAK_create()
keypoints,descriptors=freakExtractor.compute(img_bgr,keypoints)
cv2.imshow('detected', img_bgr)
cv2.waitKey(0)

它给我的错误是无法找到x.features2d模块,如下所示

Traceback (most recent call last):
File "test.py", line 3, in <module>
import cv2.xfeatures2d
ImportError: No module named xfeatures2d

我尝试重新安装它并安装了opencv-contrib,但发生了同样的问题。 有什么想法解决它?

1 个答案:

答案 0 :(得分:0)

您没有提供有关安装过程的许多详细信息。

所有的贡献功能,如xfeatures2d,都不再是预构建库的一部分。这意味着xfeatures2d仅在您自己编译openCV时才有效。

此处给出了如何执行此操作的示例(例如,针对Windows):

https://putuyuwono.wordpress.com/2015/04/23/building-and-installing-opencv-3-0-on-windows-7-64-bit/