Python OpenCV错误:drawKeypoints中的断言(!outImage.empty())失败,

Python OpenCV错误:drawKeypoints中的断言(!outImage.empty())失败,,python,opencv,sift,Python,Opencv,Sift,我正在学习SIFT算法,以便比较图像和检测常见对象。 我开始在这个领域,我写了一个小脚本,第一次获得关键点,但我得到了一个错误 我的脚本: import numpy as np import cv2 from matplotlib import pyplot as plt img = cv2.imread('test.jpg') # trainImage gray = cv2.imread('test.jpg',1) # Initiate SIFT detector sif

我正在学习
SIFT算法
,以便比较图像和检测常见对象。 我开始在这个领域,我写了一个小脚本,第一次获得关键点,但我得到了一个错误

我的脚本:

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('test.jpg')          # trainImage
gray = cv2.imread('test.jpg',1)

# Initiate SIFT detector
sift = cv2.xfeatures2d.SIFT_create()

kp = sift.detect(gray,None)
img = cv2.drawKeypoints(gray,kp,None)

cv2.imwrite('sift_keypoints.jpg',img)
我想显示带有所有关键点的灰色图片,但出现以下错误:

(cv) valentin@ubuntu:~/Desktop$ python image.py 
OpenCV Error: Assertion failed (!outImage.empty()) in drawKeypoints, file /home/valentin/opencv-3.1.0/modules/features2d/src/draw.cpp, line 113
Traceback (most recent call last):
  File "image.py", line 13, in <module>
    img = cv2.drawKeypoints(gray,kp,None)
cv2.error: /home/valentin/opencv-3.1.0/modules/features2d/src/draw.cpp:113: error: (-215) !outImage.empty() in function drawKeypoints
我得到这个错误:

TypeError: Image data can not convert to float

请检查您正在阅读的图像是否真的是jpg的,而不是png的?此外,如果要以灰度读取图像,则参数应为0,而不是指定的1。@KevinKatzke我的图像实际上是jpeg格式的。问题总是在于
drawKeypoints函数
我确信问题在于opencv无法加载灰色图像。尝试在加载灰色图像后立即添加
cv2.imwrite('test_gray.jpg',gray)
以查看加载是否真的有效。我总是遇到相同的错误:
OpenCV错误:drawKeypoints文件/home/valentinjungbluth/OpenCV-3.1.0/modules/features2d/src/draw.cpp中的断言失败(!outImage.empty()),第113行回溯(最后一次调用):文件“image.py”,第17行,img=cv2.drawKeypoints(gray,kp,img)cv2.error:/home/valentinjungbluth/opencv-3.1.0/modules/features2d/src/draw.cpp:113:error:(-215)!outImage.empty()在函数drawKeypoints中
可能是错误的openCV安装?但奇怪的是,我在问题中添加了一个编辑部分。请检查您正在读取的图像是否真的是jpg的而不是png的?此外,如果您希望以灰度形式读取图像,则参数应为0,而不是您指定的1。@KevinKatzke我的图像真的在jpeg格式。问题总是在于
drawKeypoints函数
我确信问题在于opencv无法加载灰色图像。尝试添加
cv2.imwrite('test\u gray.jpg',gray)
加载灰色图像后立即查看加载是否真的有效。我总是有相同的错误:
OpenCV错误:drawKeypoints中的断言失败(!outImage.empty()),file/home/valentinjungbluth/OpenCV-3.1.0/modules/features2d/src/draw.cpp,第113行回溯(最近一次调用):file“image.py”,第17行,img=cv2.drawKeypoints(gray,kp,img)cv2.error:/home/valentinjungbluth/opencv-3.1.0/modules/features2d/src/draw.cpp:113:error:(-215)!函数drawKeypoints中的outImage.empty()
可能是错误的opencv安装?但奇怪的是我在问题中添加了一个编辑部分
TypeError: Image data can not convert to float