主要内容

extractHOGFeatures

提取定向梯度特征的直方图

描述

例子

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

例子

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

例子

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

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

例子

全部折叠

读图像的兴趣。

img = imread (“cameraman.tif”);

提取猪的特性。

[featureVector, hogVisualization] = extractHOGFeatures (img);

在原始图像上绘制HOG特征。

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

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

读图像的兴趣。

I1 = imread (“gantrycrane.png”);

提取猪的特性。

[hog1,可视化]= extractHOGFeatures (I1,“CellSize”[32 32]);

显示原始图像和HOG特征。

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

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

带着兴趣去阅读。

I2 = imread (“gantrycrane.png”);

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

角落= detectFASTFeatures (im2gray (I2));最强= selectStrongest(角落,3);

提取猪的特性。

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

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

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

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

输入参数

全部折叠

输入图像,在两者中指定——- - - - - -N3真彩或——- - - - - -N二维灰度。输入图像必须是实数,非稀疏值。如果你有严格裁剪的图像,你可能会丢失HOG功能可以编码的形状信息。您可以通过在包含背景像素的补丁周围添加额外的像素边距来避免丢失这些信息。

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

一个正方形区域的中心位置点,指定为任意一个BRISKPointsSURFPointsMSERRegionsORBPointscornerPoints对象,或一个2的矩阵的数量(xy)坐标。该函数从完全包含在图像边界内的邻域中提取描述符。你可以用BlockSize参数。只有完全包含在图像中的邻域才被用来确定有效的输出点。该函数忽略与这些点相关的比例信息。

名称-值参数

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

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

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

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

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

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

选择方向值,指定为逻辑标量。当您将此属性设置为真正的,方向值在-180和180度之间均匀间隔。当您将此属性设置为从0到180是等距的。在这种情况下,小于0的值被放入+ 180的值箱中。使用符号方向可以帮助在图像区域中区分亮到暗和暗到光的转换。

输出参数

全部折叠

提取的HOG特征,返回为1-by-N向量或一个P——- - - - - -矩阵。这些特征对图像中的区域或点位置的局部形状信息进行编码。您可以将此信息用于许多任务,包括分类、检测和跟踪。

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

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

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

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

HOG特征向量由HOG块排列。细胞柱状图,H(Cyx), 1 -NumBins

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

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

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

HOG特征使用均匀间隔的网格来可视化玫瑰情节。单元格大小和图像大小决定网格尺寸。每个玫瑰图显示了梯度方向在HOG细胞内的分布。玫瑰图的每个花瓣的长度被缩放,以表明每个方向在细胞直方图中的贡献。图显示边缘方向,垂直于梯度方向。通过边缘方向查看图形可以让你更好地理解HOG编码的形状和轮廓。每个玫瑰地块显示两次NumBins花瓣。

你可以使用以下语法来绘制HOG特性:

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

更多关于

全部折叠

颜色值

颜色名称 短名称 RGB值 外观
“红色” “r” (1 0 0)

样品的颜色为红色

“绿色” ‘g’ (0 1 0)

样品的颜色为绿色

“蓝” “b” (0 0 1)

样品的颜色是蓝色的

“青色” “c” (0 1 1)

样品的颜色为青色

“红色” “米” (1 0 1)

样品的颜色为洋红色

“黄色” “y” (1 1 0)

样品的颜色为黄色

“黑” “k” (0 0 0)

样品的颜色为黑色

“白色” ' w ' (1 1 1)

样品的颜色为白色

参考文献

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

扩展功能

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

介绍了R2013b