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