Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 DrawKeypoints函数在OpenCV3.0/Python 2.7上不起作用_Python 2.7_Opencv3.0_Sift - Fatal编程技术网

Python 2.7 DrawKeypoints函数在OpenCV3.0/Python 2.7上不起作用

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()

我已经尝试使用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

问题是以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)