1. Получить встроенную документацию: Следующая команда на вашей консоли python поможет вам узнать структуру класса HOGDescriptor:
import cv2;
help(cv2.HOGDescriptor())
2. Пример кода: Ниже приведен фрагмент кода для инициализации cv2.HOGDescriptor с другими параметрами (используемые здесь термины являются стандартными терминами, которые хорошо определены в документации OpenCV здесь ):
import cv2
image = cv2.imread("test.jpg",0)
winSize = (64,64)
blockSize = (16,16)
blockStride = (8,8)
cellSize = (8,8)
nbins = 9
derivAperture = 1
winSigma = 4.
histogramNormType = 0
L2HysThreshold = 2.0000000000000001e-01
gammaCorrection = 0
nlevels = 64
hog = cv2.HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins,derivAperture,winSigma,
histogramNormType,L2HysThreshold,gammaCorrection,nlevels)
#compute(img[, winStride[, padding[, locations]]]) -> descriptors
winStride = (8,8)
padding = (8,8)
locations = ((10,20),)
hist = hog.compute(image,winStride,padding,locations)
3. Причина: Результирующий дескриптор hog будет иметь размерность:
9 ориентаций X (4 угловых блока, которые получают 1 нормализацию + 6x4 блоков по краям, которые получают 2 нормализации + 6x6 блоков, которые получают 4 нормализации) = 1764. поскольку я дал только одно местоположение для hog.compute ().
4. Еще один способ инициализации - из xml-файла, который содержит все значения параметров:
hog = cv2.HOGDescriptor("hog.xml")
Чтобы получить XML-файл, можно сделать следующее:
hog = cv2.HOGDescriptor()
hog.save("hog.xml")
и отредактируйте соответствующие значения параметров в XML-файле.