我想在python中使用opencv进行处理时使用SIFT。我有一个组织的灰度图像,我已将该图像分割成Patches,我想使用SIFT在每个Patch(here Patch1
)上找到关键点。
这是我的代码的一部分:
sift = cv2.xfeatures2d.SIFT_create()
kp,des = sift.detectAndCompute(Patch1,None)
然而,在运行时,它会给我图像深度的错误:
error:(-5) image is empty or has incorrect depth (!=CV_8U) in function detectAndCompute
然后,当我尝试将图像再次转换为灰度时,会出现此错误:
error: depth == CV_8U || depth == CV_16U || depth == CV_32F in function cvtColor
当我尝试使用ORB时也会发生同样的错误。
我的原始图片格式为.png
。我对原始图像进行了大量处理以得到Patch1
。可能是因为我在处理过程中做了一些改变?
你知道我应该怎么做吗?或者出了什么问题?