骨折比重

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

描述

例子

特征=骨折比法(一世从TrueColor或灰度输入图像返回提取的HOG功能,一世。该功能在1-by-中返回N矢量,在那里N是猪特征长度。返回的功能将本地形状信息从图像内的区域编码。您可以使用此信息进行许多任务,包括分类,检测和跟踪。

例子

[特征validPoints) = extractHOGFeatures (一世返回围绕指定点位置提取的HOG功能。该功能也返回validPoints,其中包含周围区域完全包含在内的输入点位置一世。忽略与点关联的尺度信息。

例子

[___可视化) = extractHOGFeatures (一世___可选地使用任何前面的语法返回HOG功能可视化。您可以使用此可视化使用阴谋可视化)。

[___) = extractHOGFeatures (___名称,价值使用一个或多个名称,值对参数指定的其他选项使用前面的任何语法。

例子

全部收缩

阅读感兴趣的形象。

img = imread('cameraman.tif');

提取猪特征。

[featureVector, hogVisualization] = extractHOGFeatures (img);

绘制原始图像上的HOG功能。

数字;imshow(img);抓住;情节(Hogvisualization);

阅读感兴趣的形象。

i1 = imread('甘迪克莱恩普恩');

提取猪特征。

[Hog1,可视化] =骨折比法(I1,'细胞化',[32 32]);

显示原始图像和HOG特征。

子图(1,2,1);imshow(i1);子图(1,2,2);情节(可视化);

阅读感兴趣的形象。

I2 = imread ('甘迪克莱恩普恩');

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

角落=检测到Fastfeatures(RGB2Gray(I2));Strongest = Selectstrongest(角落,3);

提取猪特征。

[hog2,有效点,ptvis] =骨折比特(I2,最强);

在最强大的角落周围覆盖原始图像。

数字;imshow(i2);抓住;情节(PTVIS,'颜色''绿色');

输入参数

全部收缩

输入图像,其中指定m-经过-N-by-3 TrueColor或m-经过-N2-D灰度。输入图像必须是真实的,非分数值。如果您有严格的裁剪图像,则可能会丢失HOG功能可以编码的形状信息。您可以避免丢失此信息,包括包含背景像素的补丁周围的额外像素。

数据类型:单身的|双倍的|int16|uint8.|uint16|逻辑

方形邻居的中心位置点,指定为aBrikspoint.surfpoints.MSERREGIONSORBPointscornerPoints对象,或者m2的矩阵m[Xy)坐标。该函数从完全包含在图像边界内的邻域中提取描述符。您可以设置附近的大小blocksize范围。只有在图像中完全包含的邻域仅用于确定有效的输出点。该函数忽略与这些点相关联的刻度信息。

名称值对参数

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

例子:'blocksize'[2]设置blocksize是一个2×2平方块。

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

块中的单元格数,指定为一个2元向量。大块大小的值降低了抑制局部光照变化的能力。由于一个大块中像素的数量,这些变化可能会随着平均而消失。减小块大小有助于捕获局部像素的重要性。较小的块大小有助于抑制HOG特征的光照变化。

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

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

选择方向值,指定为逻辑标量。当您将此属性设置为时真正的,方向值在-180度和180度之间均匀间隔。当您将此属性设置为时错误的,它们从0到180均匀地间隔开。在这种情况下,将小于0的θ的值放入θ+ 180值箱中。使用签名的方向可以帮助区分光到暗与图像区域内的暗到光转换。

输出参数

全部收缩

提取的HOG功能,返回为1-by-N矢量或A.P.-经过-问:矩阵。该特征从区域内的区域或从图像内的点位置编码本地形状信息。您可以使用此信息进行许多任务,包括分类,检测和跟踪。

特征输出 描述
1 -N向量 猪特征长度,N,基于图像大小和功能参数值。
N=prod([BlockSperimage.blocksize麻木])
BlockSperimage.=地板上((尺寸一世)。/细胞化-blocksize) / (blocksize-块榫)+ 1)
P.-经过-问:矩阵 P.是周围区域完全包含在输入图像内的有效点数。你提供了提取点位置的输入值。
周围地区计算为:
细胞化.*blocksize
特征向量长度,问:,计算为:
prod([麻木blocksize])。

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

下图显示了具有六个单元格的图像。

如果你设置了blocksize(2 - 2],它会使每个猪块,2×2个细胞的大小。细胞的大小为像素。你可以将它设置为细胞化财产。

HOG特征向量由HOG块排列。细胞柱状图,H(Cyx.),是1-by-麻木

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

与每个关联的有效点特征描述符矢量输出。此输出可以作为a返回cornerPoints对象,Brikspoint.surfpoints.对象,MSERREGIONS对象,ORBPoints对象或An.m- 2矩阵[Xy)坐标。函数提取m来自尺寸区域中的有效兴趣点的描述符数等于[细胞化.*blocksize]。提取的描述符作为输入作为相同类型的对象或矩阵返回。该区域必须完全包含在图像中。

HOG功能可视化,作为对象返回。该函数输出此可选参数以可视化提取的HOG功能。你可以使用阴谋方法与可视化输出。看看提取和绘图猪特征例子。

使用均匀间隔的网格可视化猪特征玫瑰情节。图像的小区大小和图像的大小确定网格尺寸。每个玫瑰图显示猪细胞内渐变取向的分布。缩放玫瑰图的每个花瓣的长度以指示每个方向在细胞直方图内产生的贡献。该曲线显示垂直于梯度方向的边缘方向。通过边缘方向查看绘图允许您更好地理解猪编码的形状和轮廓。每个玫瑰图显示两次麻木花瓣。

您可以使用以下语法绘制HOG功能:

情节(可视化)将HOG功能绘制为玫瑰图阵列。
绘图(可视化,斧头)将Hog特征绘制到轴轴中。
绘图(___,'颜色',ColorSpec.指定用于绘制HOG功能的颜色,其中ColorSpec.代表颜色。

参考文献

[1] Dalal, N.和B. Triggs。《面向梯度的人体检测直方图》IEEE计算机视觉和模式识别的计算机协会会议,卷。1(2005年6月),第886-893页。

扩展能力

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

介绍在R2013B.