python - 在 python opencv 中使用 drawKeypoints 给出错误 : 'module' object has no attribute 'drawKeypoints'

标签 python opencv sift

这是我使用的代码:

import cv2
import cv
im=cv2.imread("box.png")
gr=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
d=cv2.FeatureDetector_create("SIFT")
kp=d.detect(gr)
imm=cv2.drawKeypoints(im, kp)#[, outImage[, color[, flags]]])
# io.imshow(gr)

但是我得到的错误是 cv2 没有 drawKeypoints。我自己检查了这个:

d=dir(cv2)
if "drawKeypoints" in d: 
  print 'yes'
else: 
  print 'no'

发现确实没有。是否有要使用的任何替代功能,或者是否是一些与版本相关的问题?

最佳答案

我不确定版本问题,但我正在运行 OpenCV 2.4.11 并且在我运行之后 cv2.drawKeypoints() 可用:

import cv2

如果您仍然无法让它工作,您可以使用 common.py 示例代码中的替代方法:

def draw_keypoints(vis, keypoints, color = (0, 255, 255)):
    for kp in keypoints:
            x, y = kp.pt
            cv2.circle(vis, (int(x), int(y)), 2, color)

希望对您有所帮助。

关于python - 在 python opencv 中使用 drawKeypoints 给出错误 : 'module' object has no attribute 'drawKeypoints' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26499093/

相关文章:

c - 如何从 CIE RGB 空间提取 3D 模型

opencv - 计算机视觉-计算图像中的小圆圈

image - 使用 OpenCV 检测 SURF 或 SIFT 算法中的异常值

python - 如何在没有多个循环的情况下将多个函数应用于 pandas 数据框?

python - 使用 Foreman 进行 Flask 日志记录

android - 用于安卓安装的OpenCV

matlab - OCR在MATLAB中的SIFT实现

python - 从 PID 设置事件/前景窗口

python - 通过 Flask 框架将 Dash 条形图插入 HTML 页面

OpenCV BFMatcher - 忽略误报