我正在尝试从一组图像补丁创建一个密码本。我已将图像 (Caltech 101) 划分为 20 X 20 图像块。我想为每个补丁创建一个 SIFT 描述符。但是对于某些图像补丁,它不返回任何描述符/关键点。我尝试过使用 OpenCV 和 vlfeat。使用任何库的行为都是相同的。
以下是我使用 OpenCV 的代码 -
sift = cv2.SIFT()
img = cv2.imread('patch_temp.jpg',0)
imgptch = cv2.imread('image_patch.jpg',cv2.CV_LOAD_IMAGE_GRAYSCALE)
kp, des = sift.detectAndCompute(imgptch,None)
print des
des 是“无”。如果我使用 vlfeat,情况也是如此。注意:如果我使用不同的图像,以上工作。对于某些图像(10 个中的 6 个),它返回 None。
我已经使用 OpenCV 索引创建了图像补丁 -
patch = img[0:20,0:20]
cv2.imwrite('image_patch.jpg',img)