Я внедряю SURF в образ HSV, но он не работает.И когда я делаю то же самое с RGB-изображением, оно работает нормально.
from PIL import Image
import cv2
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
#loaading image
rgb_img_arr= np.array(Image.open("myImage.jpg"))
hsv_image_arr=matplotlib.colors.rgb_to_hsv(rgb_img_arr)
surf = cv2.xfeatures2d.SURF_create()
#it works fine
keypoints, descriptors = surf.detectAndCompute(rgb_img_arr, None)
rgb_img = cv2.drawKeypoints(rgb_img_arr, keypoints, None)
plt.imshow(rgb_img )
#But it doent work
keypoints, descriptors = surf.detectAndCompute(hsv_image_arr, None)
hsv_img = cv2.drawKeypoints(hsv_image_arr, keypoints, None)
plt.imshow(hsv_img )
Ошибка, которую я получаю -
C: \ projects \ opencv-python \ opencv_contrib \ modules\ xfeatures2d \ src \ surf.cpp: 892: ошибка: (-215)! _img.empty () && ((imgtype) & ((1 << 3) - 1)) == 0 && (imgcn == 1 || imgcn == 3 || imgcn == 4) в функции cv :: xfeatures2d :: SURF_Impl :: detectAndCompute </p>
Скажите, пожалуйста, как я могу это исправить?