1. Получить ВСТРОЕННУЮ Документацию: Вы также можете изменить свойства HOGDescriptor в соответствии с вашими требованиями, После команды на вашем питон консоли поможет вам узнать структуру класса HOGDescriptor:
import cv2 help(cv2.HOGDescriptor())
2. Пример кода: Ниже приведен фрагмент кода для инициализации cv2.HOGDescriptor с различными параметрами (термины, которые я использую здесь, являются стандартными терминами, которые хорошо определены в документации OpenCV here):
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. Обоснование: Полученный дескриптор боров будет иметь размер, как: 9 ориентаций X (4 угловых блоки, которые получают 1 нормировку + 6x4 блоков по краям, которые получают 2 нормировок + блоки 6х6, которые получают 4 нормализации) = 1764. поскольку я дал только одно место для hog.compute().
4. Еще один способ инициализации от XML-файл, который содержит все значения параметров:
hog = cv2.HOGDescriptor("hog.xml")
Чтобы получить XML-файл, можно сделать следующее:
hog = cv2.HOGDescriptor()
hog.save("hog.xml")
и редактировать соответствующие значения параметров в файле xml.
Решение проблемы:Вы можете изменить значение «winSize» так, как вы хотите. так что размер вашего изображения не будет отображаться в области окна HoG.
Какой размер принимает ваш HoGDescriptor и каков размер вашего изображения? Попробуйте перемасштабировать свое изображение, чтобы оно соответствовало «winSize» – Micka
Спасибо большое! Вот что. Если вы опубликуете его как ответ, я буду отмечать его как принятый ответ. – Arnaud