我正在实施
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中
请告诉我怎样修理这个
?