前言:主要包括HOG原理简介、代码实现、opencv相应库函数的调用
参考
文章目录
0. 相关基本概念
图像特征
- 颜色特征:RGB颜色空间,HSV颜色空间。颜色直方图、颜色矩
- 形状特征:包含着轮廓特征,区域特征。SIFT、HOG
- 纹理特征:无法通过纹理特征获得高层次图像内容。
- 边缘特征:形状特征中的轮廓特征。常用算法 canny、sobel
对图像的处理,尤其是区域分割或模式识别,基本上都逃脱不了图像特征提取,提取出感兴趣的部分(ROI),加以分析和后续处理。
HOG特征就是用来描述图片特征用于物体检测的特征描述子。它是通过计算和统计图像的局部区域的梯度方向直方图来构建特征。
Q:为何能够有效地描述某些图像特征?
首先,图像从计算机的角度来看,都是一个个离散的点组成的数据矩阵。数字的大小表征着数字信息。图像处理,就是在这些数字基础上进行一系列的操作。可以用函数 f(x, y)表示图像矩阵x行y列的数值(像素值)。
图像梯度
在微积分中,对于二维函数的偏微分
∂ f ( x , y ) ∂ x = lim δ → 0 f ( x + δ , y ) − f ( x , y ) δ ∂ f ( x , y ) ∂ y = lim δ → 0 f ( x , y + δ ) − f ( x , y ) δ \frac{\partial f(x,y)}{\partial x}=\lim\limits_{\delta\rightarrow0} \frac{f(x+\delta,y)-f(x,y)}{\delta} \\ \frac{\partial f(x,y)}{\partial y}=\lim\limits_{\delta\rightarrow0} \frac{f(x,y+\delta)-f(x,y)}{\delta} \\ ∂x∂f(x,y)=δ→0limδf(x+δ,y)−f(x,y)∂y∂f(x,y)=δ→0limδf(x,y+δ)−f(x,y)
图像是离散的二维函数, δ \delta δ取最小值为1像素。因此有
∂ f ( x , y ) ∂ x = f ( x + 1 , y ) − f ( x , y ) = G ( x ) ∂ f ( x , y ) ∂ y = f ( x , y + 1 ) − f ( x , y ) = G ( y ) \frac{\partial f(x,y)}{\partial x}=f(x+1,y)-f(x,y) =G(x)\\ \frac{\partial f(x,y)}{\partial y}=f(x,y+1)-f(x,y) =G(y) ∂x∂f(x,y)=f(x+1,y)−f(x,y)=G(x)∂y∂f(x,y)