cv2.HOGDescriptor 的计算方法总是 returns 一个空元组

compute method of cv2.HOGDescriptor always returns an empty tuple

我正在使用 here 中给出的代码片段来计算小图像块的 HOG 特征。然而,对于随附的代码,本应保存 HOG 特征值的变量 h 却返回了一个空元组。任何人都可以指出我在代码中哪里出错了吗?

import numpy as np
import cv2

img = cv2.imread('newimg.jpg')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img_gray = cv2.resize(img_gray,(50,50))

hog = cv2.HOGDescriptor()
h = hog.compute(img_gray)
print(h)

附上测试图

我认为图片大小有问题。更具体地说,与 hog 描述符的默认 window 大小相比,图像大小更小。我建议调整图片大小,然后使用下面附带的代码片段。

winSize = (32,32)
blockSize = (16,16)
blockStride = (8,8)
cellSize = (8,8)
nbins = 9
hog = cv2.HOGDescriptor(winSize, blockSize, blockStride, cellSize, nbins)
h = hog.compute(img_gray)
print(h)