我一直在试图使用SIFT检测器大约一个星期,当我终于得到它的工作,我得到一个错误与cv2.drawKeypoints()函数。代码如下:DrawKeypoints函数不工作在OpenCV3.0/Python 2.7
import cv2
import numpy as np
img = cv2.imread('\\home\\gaiarsa\\matrix\\poste.jpg')
gray = cv2.imread('\\home\\gaiarsa\\matrix\\poste.jpg', 1)
sift = cv2.xfeatures2d.SIFT_create()
dummy = np.zeros((1,1))
kp = sift.detect(gray, None)
img = cv2.drawKeypoints(gray, kp,dummy, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.imwrite('sift_keypoints.jpg', img)
我运行它后,我得到的错误:
OpenCV Error: Assertion failed (!outImage.empty()) in drawKeypoints, file /home/gaiarsa/opencv/modules/features2d/src/draw.cpp, line 113
Traceback (most recent call last):
File "sift.py", line 14, in
img = cv2.drawKeypoints(gray, kp,dummy, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
cv2.error: /home/gaiarsa/opencv/modules/features2d/src/draw.cpp:113: error: (-215) !outImage.empty() in function drawKeypoints
当我尝试去除函数的参数dummy数组,我得到以下错误:
Traceback (most recent call last):
File "sift.py", line 14, in
img = cv2.drawKeypoints(gray, kp, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
TypeError: Required argument 'outImage' (pos 3) not found
2016-03-14
Pedro
+0
尝试'cv2.drawKeypoints(灰,kp,img,flags = cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)'(没有'img ='和'dummy') –
+0
试过了。它没有工作。仍然有!outImage.empty()错误 –
+1
然后没有线索。祝你好运! ; d –