【发布时间】:2016-06-29 23:23:05
【问题描述】:
我已经尝试使用 SIFT 检测器大约一周了,当我终于让它工作时,cv2.drawKeypoints() 函数出现错误。代码如下:
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 <module>
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 <module>
img = cv2.drawKeypoints(gray, kp, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)
TypeError: Required argument 'outImage' (pos 3) not found
【问题讨论】:
-
试试
cv2.drawKeypoints(gray, kp, img, flags=cv2.DRAW_MATCHES_FLAGS_DRAW_RICH_KEYPOINTS)(没有img =和dummy) -
试过了。它没有用。仍然出现 !outImage.empty() 错误
-
那么没有线索..祝你好运! ;D
-
有时源图像和目标图像不一样,有些标志不起作用
标签: python-2.7 opencv3.0 sift