首页 > 解决方案 > OpenCV 没有 drawKeypoints 函数

问题描述

我正在使用 Python 3.7.1 和 OpenCV 4.0.0 我只是在测试具有各种配置的 FAST 算法,但该drawKeypoints功能存在问题。事实上,我复制了 OPenCV 教程代码,只是为了实现该函数需要第三个参数,即输出图像。在那之后,一切正常,我承诺回购。
后来,我不得不格式化我的电脑,然后重新安装所有东西。现在,每当我尝试运行该代码时,它都会抱怨module 'cv2' has no attribute 'drawKeypoints'. 这是我在格式化后运行的最基本的代码。

import numpy as np
import cv2
import sys

img = cv2.imread(sys.argv[1], 0)
fast = cv2.FastFeatureDetector_create()
kp = fast.detect(img,None)
img2 = cv2.drawKeypoints(img, kp, None, color=(255,0,0))
cv2.imshow('Original',img)
cv2.imshow('Detected',img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

我一直在寻找,但我不知道这段代码可能有什么问题。

标签: pythonopencv

解决方案


它看起来与此错误有关,该错误在 git 存储库(源)中有解决方案,但不一定在使用 pip 的安装中更新。它于 2018 年 12 月 11 日合并,所以在这个问题的时间里它可能没有更新。

也许获得更新的轮子可以解决问题,或者您可以从源头自己构建它。在这里,您还可以看到它是如何生成的(来自 pip install 的),还为您提供了构建自己的 opencv 轮的工具。


推荐阅读