2015-11-08 56 views
2

我使用OpenCV 2.4 in C++OpenCV:计算整个图像的单个HOG矢量并获取块位置

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

  • 有任何短期的方式做到这一点,或者我应该初始化winSizegpu::HOGDescriptor对象等于图像的大小?

  • 当您使用getDescriptors()方法(或仅与检测相关的方法相关)时,winSize参数是否与您的参数无关?

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

回答

2
  • 设置中winsize是正确的方法。
  • 此参数与getDescriptors()相关,因为它定义了描述符的大小。首先将大小为winSize的描述符分成大小为cellSize的单元格。对于每个单元格,建立一个面向梯度的直方图。描述符进一步安排在块中。 A Block使用blockSize.width * blockSize.height双眼望远镜细胞来估计将直方图标准化为blockSize.width * blockSize.height细胞组织图。 blockStride可用于以重叠方式排列块。最终,为每个块估计的所有归一化直方图被连接在一起,这定义了最终的描述符向量长度。 here你可以找到一个很好的可视化。所以不同的大小会导致不同的描述符长度。
  • 如果您指的是HoG描述符的位置,则可以使用compute函数的locations属性。
+0

谢谢你的回答! – SomethingSomething