error: OpenCV(4.7.0) :-1: error: (-5:Bad argument) in function ‘knnMatch‘> Overload resolution fail

 各位大佬,我正在用Sobel、SIFT feature extraction、Color histogram去做图像分类检索。想输入一张图片去检索相类似的图像,出现了以下错误,请问该怎么解决呢?万分感谢

# Define a function to find similar images
def find_similar_images(image_path, k=5):
    # Load input image and compute descriptors
    img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
    img = cv2.resize(img, (img_size, img_size))
    keypoints, descriptors = sift.detectAndCompute(img, None)

    # If no keypoints are found, return an empty list
    if descriptors is None:
        return []

    # Convert descriptors to np.float32 data type
    descriptors = descriptors.astype(np.float32)
    
    # Compute distances between input image descriptors and dataset descriptors
    matcher = cv2.FlannBasedMatcher()
    matches = matcher.knnMatch(descriptors, data, k=2)
    distances = [m[0].distance for m in matches]
    
    # Find indices of the most similar images
    indices = np.argsort(distances)[:k]
    similar_images = []
    for index in indices:
        category = labels[index]
        folder_path = os.path.join(path, category)
        img_names = os.listdir(folder_path)
        img_path = os.path.join(folder_path, img_names[index])
        similar_images.append(cv2.imread(img_path))
    
    return similar_images

# Input an image and get similar images
input_image_path = “bridge.jpg”
similar_images = find_similar_images(input_image_path)

# Display similar images
for image in similar_images:
    cv2.imshow(“Similar Image”, image)
    cv2.waitKey(1000)
    
cv2.destroyAllWindows()

error: OpenCV(4.7.0) :-1: error: (-5:Bad argument) in function 'knnMatch'
> Overload resolution failed:
>  - trainDescriptors data type = 17 is not supported
>  - Expected Ptr<cv::UMat> for argument 'trainDescriptors'
>  - argument for DescriptorMatcher.knnMatch() given by name ('k') and position (2)
>  - argument for DescriptorMatcher.knnMatch() given by name ('k') and position (2)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2023年5月31日
下一篇 2023年5月31日

相关推荐