【OpenCV】102 HOG特征描述子—提取描述子

102 HOG特征描述子—提取描述子

代码

import cv2 as cv

if __name__ == '__main__':
    src = cv.imread("../images/gaoyy_min.png")
    print(src.shape)
    hog = cv.HOGDescriptor()
    gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
    fv = hog.compute(gray, winStride=(8, 8), padding=(0, 0))
    print(len(fv))
    print(fv)
    cv.imshow("hog-descriptor", src)
    cv.waitKey(0)
    cv.destroyAllWindows()

实验结果

在这里插入图片描述

解释

对于HOG特征,我们可以通过预先训练的特征数据,进行多尺度的对象检测,OpenCV中基于HOG的行人检测是一个典型案例,同时我们还可以实现自定义对象的检测,这种自定义对象检测,可以分为两个部分,第一部分:通过提取样本的HOG描述子,生成样本的特征数据,第二部分通过SVM进行分类学习与训练,保存为模型。这样我们以后就可以通过模型来实现自定义对象检测啦。今天我们首先分享第一部分,提取HOG描述子。OpenCV中提取HOG描述子的API表示如下:

cv.HOGDescriptor.compute(img, winStride=None, padding=None, locations=None)

输入图像大小WxH=72x128
默认的HOG描述子窗口大小为64x128,窗口移动的步长8x8
对于每个窗口内部,每个Cell大小是8x8的,所以窗口可以划分为8x16的Cells大小
对于每个Block区域来说,每次移动步长是一个Cell,8x16Cells可以得到总数7x15个Block
每个Block都是4个Cell, 36个向量,所以对于输入图像得到:
7x15x36x2 = 7560个特征描述子,这些描述子可以作为浮点数特征数据,对于需要输入的样本图像来说,需要首先执行以下预处理,把图像大小resize为跟窗口大小一致或者把窗口resize跟图像大小一致,这样有利于下一步处理。
在这里插入图片描述


所有内容均来源于贾志刚老师的知识星球——OpenCV研习社,本文为个人整理学习,已获得贾老师授权,有兴趣、有能力的可以加入贾老师的知识星球进行深入学习。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值