从 kaggle 脚本编辑器中的 OpenCV 中筛选



我正在尝试使用OpenCV的SIFT进行图像对象识别,所以我从以下代码开始测试环境:

import cv2 
img = cv2.imread('../input/train_2/2.jpg')
gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
sift = cv2.xfeatures2d.SIFT_create()
kp = sift.detect(gray,None)
img=cv2.drawKeypoints(gray,kp)
cv2.imwrite('sift_keypoints.jpg',img)

当我运行代码时,我收到此错误:

属性

错误:模块"cv2"没有属性"xfeatures2d"

似乎安装的OpenCV软件包不支持SIFT。我该如何解决它?

SIFT是opencv-contrib软件包的一部分,OpenCV软件包不包含实验性和非自由模块 - 所以请注意许可,所以...

你应该用额外的模块构建opencv,你需要:

  1. 下载或克隆 opencv-contrib
  2. 在 cmake 命令行中使用此标志:cmake -DOPENCV_EXTRA_MODULES_PATH=<opencv_contrib>/modules <other_flags> <opencv_source_directory>

相关内容

  • 没有找到相关文章

最新更新