1.獲取內置文檔:您也可以根據您的要求改變HOGDescriptor性質, 你的Python控制檯下面的命令將幫助你知道類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角塊即獲得在該獲得2個歸一化+ 6x6的塊即得到4邊緣1個正常化+ 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 2014-12-07 14:32:34
非常感謝!就是這樣。如果您將其作爲答案發布,我會將其標記爲已接受的答案。 – Arnaud 2014-12-07 15:16:49