1.获取内置文档:在python控制台上执行以下命令将帮助您了解HOGDescriptor类的结构:
import cv2;
help(cv2.HOGDescriptor())
2.实施例编号:下面是一个代码片段来初始化不同参数的cv2.HOGDescriptor(I这里所用的术语是被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.推理:最终的生猪描述符将具有以下尺寸:9个方向X(获得1个归一化的4个角块+得到2个归一化的边缘上的6x4块+得到4个归一化的6x6块的边缘)= 1764。 hog.compute()的一个位置。
4.还有一种初始化方法是从包含所有参数值的xml文件中进行初始化 :
hog = cv2.HOGDescriptor("hog.xml")
要获取xml文件,可以执行以下操作:
hog = cv2.HOGDescriptor()
hog.save("hog.xml")
并在xml文件中编辑相应的参数值。
0
我已经阅读了有关如何使用OpenCV的基于HOG的行人检测器的文章: 如何使用OpenCV检测和跟踪人员?
我想使用HOG来检测图像中的其他类型的对象(不仅仅是行人)。但是, HOGDetectMultiScale的Python绑定似乎无法提供对实际HOG功能的访问。
是否可以使用Python + OpenCV直接从任何图像中提取HOG功能?