Python 2.7 DrawKeypoints函数在OpenCV3.0/Python 2.7上不起作用
我已经尝试使用SIFT检测器大约一个星期了,当我最终让它工作时,我发现Python 2.7 DrawKeypoints函数在OpenCV3.0/Python 2.7上不起作用,python-2.7,opencv3.0,sift,Python 2.7,Opencv3.0,Sift,我已经尝试使用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()
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
问题是以jpeg格式读取png文件。我一更改它,它就工作了只需检查文件名。如果它们是错误的,你将不会得到很好的错误消息,而只是得到空指针或其他什么,程序只会在前面中断,给出这样的消息…路径不存在!(如果扩展名为.png,则相同) “\home\gaiarsa\matrix\poste.jpg” 使用前请检查路径:
import os
if not os.path.exists('path/file'):
print('Incorrect path or file missing')
exit(0)
尝试
cv2。drawKeypoints(灰色、kp、img、flags=cv2。DRAW\u匹配\u flags\u DRAW\u RICH\u关键点)
(没有img=
和虚拟
)尝试了它。它不起作用。还是拿到了!outImage.empty()错误然后没有线索。。祝你好运有时,源图像和目标图像不一样,有些标志不起作用
import os
if not os.path.exists('path/file'):
print('Incorrect path or file missing')
exit(0)