这是我正在使用的代码:
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'
并发现它确实没有。是否有任何替代功能要使用,还是与版本相关的问题?
答案 0 :(得分:3)
我不确定版本问题,但是我运行的是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)
我希望这会有所帮助。
答案 1 :(得分:0)
对于python 3.5,我必须将输出图像变量作为第三个参数放到函数中。