OpenCV:为整个图像计算单个HOG矢量并获取块位置

时间:2015-11-08 08:40:58

标签: opencv computer-vision

我在 C ++ 中使用 OpenCV 2.4

我有一些图像,比方说,360x240(但它不相关),我想为整个图像计算一个HOG矢量。

  • 有没有简短的方法,或者我应该gpu::HOGDescriptor winSize的对象初始化winSize等于图像大小?

  • 使用getDescriptors()方法时,(rawtemp[2] << 6 ) | (rawtemp[3] >> 2)参数是否相关(或仅与检测相关的方法相关)?

  • 是否有一些简单的方法可以告诉矢量中每个块的图像中的坐标?

1 个答案:

答案 0 :(得分:2)

  • 设置winSize是正确的方法。
  • 此参数与getDescriptors()相关,因为它定义了描述符的大小。大小为winSize的描述符首先划分为大小为cellSize的单元格。对于每个单元,构建定向梯度的直方图。描述符进一步按块排列。块使用blockSize.width * blockSize.height个adjecent单元格来估计从blockSize.width * blockSize.height单元格组织图中标准化直方图。 blockStride可用于以重叠方式排列块。最后,为每个块估计的所有归一化直方图被连接,其定义最终描述符向量长度。 here你可以找到一个很好的可视化。因此,不同的大小会导致各种描述符长度。
  • 如果您指的是HoG描述符的位置,则可以使用locations函数的compute属性。