Изображение пусто из-за неправильной глубины ошибки в KnnMatcher OpenCV - PullRequest
0 голосов
/ 13 сентября 2018

, поэтому я недавно написал некоторый код, который запускает функцию SIFT detectAndCompute() для черно-белой версии моего изображения с именем gray.Мой код работал нормально с изображениями, с которыми я работал, но недавно начал давать сбой.Я получаю эту ошибку всякий раз, когда запускаю свой код:

ошибка: (-5) изображение пусто или имеет неправильную глубину (! = CV_8U) в функции cv :: xfeatures2d :: SIFT_Impl :: detectAndCompute

Я знаю, что проблема возникает, когда у меня неправильная глубина изображения или пустое изображение, но ни один из них, похоже, не относится к моему коду.Я распечатываю имя изображения, чтобы знать, что файл находится в процессе.Мне было интересно, знает ли кто-нибудь возможные причины, по которым мой код может давать сбой.

Это код, в котором я пытаюсь запустить detectAndCompute на изображении после его преобразования в оттенки серого.

#Class constructor -  basically an initializer
def __init__(self, image, x, y):
    self.x = x
    self.y = y
    self.image = image
    gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
    sift = cv2.xfeatures2d.SIFT_create()
    (self.kps, self.features) = sift.detectAndCompute(gray,None)
    self.kps = np.float32([kp.pt for kp in self.kps])

и это код, где я читаю файлы изображений из папки.

#import spam grid images from folder
images = [cv2.imread(file) for file in glob.glob("SpAMImages/*")]
#obtain SpAM reference image names
file_names= [os.path.basename(file).split(".")[0] for file in             
glob.glob("SpAMImages/*")]

for image, file_name in zip(images, file_names):
    print(file_name)
...