主要内容

extractHOGFeatures

提取定向梯度(HOG)特征直方图

描述

例子

特性= extractHOGFeatures (返回从真彩色或灰度输入图像中提取的HOG特征,.特征以1 × -的形式返回N向量,N为HOG特征长度。返回的特征编码图像内区域的局部形状信息。您可以将此信息用于许多任务,包括分类、检测和跟踪。

例子

特性validPoints= extractHOGFeatures(返回围绕指定点位置提取的HOG特征。函数还返回validPoints,其中包含输入点位置,其周围区域完全包含在其中.与点相关的尺度信息将被忽略。

例子

___可视化= extractHOGFeatures(___可选地返回一个HOG特征可视化,使用前面的任何语法。您可以使用情节可视化).

___= extractHOGFeatures(___名称,值使用由一个或多个名称、值对参数指定的附加选项,使用上述任何语法。

例子

全部折叠

阅读感兴趣的图片。

Img = imread(“cameraman.tif”);

提取HOG特征。

[featureVector,hogVisualization] = extractHOGFeatures(img);

Plot HOG的特征超过了原始图像。

图;imshow (img);持有;情节(hogVisualization);

图中包含一个轴对象。axis对象包含image、line类型的3个对象。

阅读感兴趣的图片。

I1 = imread(“gantrycrane.png”);

提取HOG特征。

[hog1,visualization] = extractHOGFeatures(I1,“CellSize”[32 32]);

显示原始图像和HOG特征。

次要情节(1、2、1);imshow (I1);次要情节(1、2、2);情节(可视化);

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。坐标轴对象2包含一个image类型的对象。

阅读感兴趣的图片。

I2 = imread(“gantrycrane.png”);

检测并选择图像中最强的角。

拐角= detectFASTFeatures(im2gray(I2));最强= select最强(角,3);

提取HOG特征。

[hog2,validPoints,ptVis] = extractHOGFeatures(I2,最强);

显示原始图像,在最强的角落周围覆盖HOG特征。

图;imshow (I2);持有;情节(ptVis“颜色”“绿色”);

图中包含一个轴对象。axis对象包含图像、直线、矩形类型的6个对象。

输入参数

全部折叠

输入图像,在任意一个中指定——- - - - - -N-by-3真彩色或——- - - - - -N二维灰度。输入图像必须是实数,非稀疏值。如果图像裁剪得很紧凑,可能会丢失HOG函数可以编码的形状信息。您可以通过在包含背景像素的补丁周围包含额外的像素边缘来避免丢失此信息。

数据类型:||int16|uint8|uint16|逻辑

一个方形社区的中心位置点,指定为BRISKPointsSURFPointsMSERRegionsORBPointscornerPoints对象,或的-by-2矩阵[数目]xy)坐标。该函数从完全包含在图像边界内的邻域中提取描述符。属性设置邻域的大小BlockSize参数。只有完全包含在图像中的邻域才用于确定有效的输出点。该函数忽略与这些点相关的比例信息。

名称-值参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“BlockSize”(2 - 2)设置BlockSize是一个2乘2的方形块。

HOG单元格的大小,以像素为单位指定为2元素向量。为了捕获大规模的空间信息,增加单元的大小。当你增加单元的大小时,你可能会失去小尺度的细节。

块中的单元数,指定为2元素向量。较大的块大小值会降低抑制局部照明变化的能力。由于大块中的像素数量,这些变化可能会在平均时丢失。减小块大小有助于捕捉局部像素的重要性。较小的块尺寸有助于抑制HOG特征的光照变化。

相邻块之间的重叠单元数,指定为2元素向量。为了确保足够的对比标准化,选择至少一半块大小的重叠。大的重叠值可以捕获更多的信息,但它们会产生更大的特征向量大小。此属性仅适用于从区域提取HOG特征,而不是从点位置提取HOG特征。当您在一个点位置周围提取HOG特征时,只使用一个块,因此不会发生重叠。

方向直方图箱的数量,指定为正标量。为了编码更精细的方向细节,增加箱子的数量。增加这个值会增加特征向量的大小,这需要更多的时间来处理。

方向值的选择,指定为逻辑标量。当您将此属性设置为真正的,方向值在-180度和180度之间均匀间隔。当您将此属性设置为,它们的间距从0到180不等。在本例中,小于0的theta值被放入theta + 180值bin中。使用符号方向可以帮助区分图像区域内的明暗转换和暗到明转换。

输出参数

全部折叠

提取的HOG特征,以1 × -的形式返回N向量还是aP——- - - - - -矩阵。这些特征编码来自区域或图像内点位置的局部形状信息。您可以将此信息用于许多任务,包括分类、检测和跟踪。

特性输出 描述
1 -N向量 HOG特征长度,N,是基于图像大小和函数参数值。
N刺激([BlocksPerImageBlockSizeNumBins])
BlocksPerImage地板上((大小)。/CellSize- - - - - -BlockSize) / (BlockSize- - - - - -BlockOverlap) + 1)
P——- - - - - -矩阵 P是其周围区域完全包含在输入图像中的有效点的数目。您提供为提取点位置输入值。
周边区域计算为:
CellSize.*BlockSize
特征向量的长度,的计算公式为:
刺激([NumBinsBlockSize])。

例1。HOG特征向量中直方图的排列

下图显示了一个包含六个单元格的图像。

如果你设置BlockSize(2 - 2],它会使每个HOG块的大小为2 × 2单元格。单元格的大小以像素为单位。你可以用CellSize财产。

HOG特征向量由HOG块排列。细胞直方图H(Cyx)为1 × -NumBins

下图显示了HOG特征向量在块之间有1 × 1的单元重叠。

与每个相关的有效点特性描述符向量输出。此输出可以返回为cornerPoints对象,BRISKPointsSURFPoints对象,MSERRegions对象,ORBPoints对象或的-by-2矩阵xy)坐标。函数提取来自大小等于[的区域中有效兴趣点的描述符数量CellSize.*BlockSize].提取的描述符作为与输入相同类型的对象或矩阵返回。该区域必须完全包含在图像中。

HOG特征可视化,作为对象返回。该函数输出此可选参数以可视化提取的HOG特征。您可以使用情节方法。可视化输出。看到提取和绘制HOG特征的例子。

HOG特征使用均匀间隔的网格进行可视化玫瑰情节。单元格大小和图像大小决定网格尺寸。每个玫瑰图显示了HOG细胞内梯度方向的分布。玫瑰图的每个花瓣的长度是按比例缩放的,以表明每个方向在细胞直方图中的贡献。该图显示边缘方向,这是正常的梯度方向。用边缘方向查看图形可以让您更好地理解HOG编码的形状和轮廓。每株玫瑰花圃陈列两次NumBins花瓣。

你可以使用下面的语法来绘制HOG特征:

情节(可视化)HOG的特征是一组玫瑰图。
情节(可视化,AX)将HOG特征绘制到轴AX中。
情节(___,“颜色”,colorValue)指定用于绘制HOG特征的颜色,其中colorValue表示颜色为1 × 3 RGB向量,颜色名称为短或长,请参见颜色值表格

更多关于

全部折叠

颜色值

颜色名称 短名称 RGB值 外观
“红色” “r” [10 0 0]

样品的颜色为红色

“绿色” ‘g’ [0 10 0]

样品的颜色为绿色

“蓝” “b” [0 0 1]

样品的颜色为蓝色

“青色” “c” [0 1 1]

样品的颜色为青色

“红色” “米” [10 0 1]

样品的颜色为洋红色

“黄色” “y” [11 10 0]

样品的颜色为黄色

“黑” “k” [0 0 0]

样品颜色为黑色

“白色” ' w ' [1 1 1]

样品颜色为白色

参考文献

[1]达拉尔,N.和B.特里格斯。面向人类检测的梯度直方图,IEEE计算机学会计算机视觉和模式识别会议,第1卷(2005年6月),第886-893页。

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

在R2013b中引入