图像为空,在KnnMatcher OpenCV中具有不正确的深度错误

时间:2018-09-13 20:22:58

标签: python image opencv image-processing sift

所以我不久前写了一些代码,在我的黑白图像版本detectAndCompute()上运行SIFT gray函数。我的代码在使用的图像上运行良好,但是最近开始失败。每当我运行代码时,我都会收到此错误:

  

错误:(-5)图片为空或功能cv :: xfeatures2d :: SIFT_Impl :: detectAndCompute中的深​​度不正确(!= CV_8U)

我知道每当我有错误的图像深度或空白图像时都会出现问题,但是我的代码似乎都不存在这种情况。我打印出图像名称,因此我知道已到达文件。我想知道是否有人知道我的代码可能失败的可能原因。

这是我将图像转换为灰度后尝试在图像上运行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)

0 个答案:

没有答案