在Python OpenCV中使用HOGDescriptor功能是否有任何有用的文档?我已经阅读了C ++文档,但Python版本的功能不同,我无法通过修补来解决它。
最具体地说,我在Python中寻找一个OpenCV命令,它将一个图像和一个像素位置作为输入(可能还有一些关于检测窗口大小的参数),然后只返回一个包含HOG特征的Python数组vector(即列表或NumPy数组等,其中列表的第j个元素是面向渐变直方图的第j个直方图分量)。
我的目标是将这些直方图提供给scikits.learn SVM管道(所以我可以避免OpenCV SVM培训),但要做到这一点,我需要实际的特征向量本身而不是那种HOG处理链管道的东西OpenCV似乎使用。
HOG代码的任何其他Python实现也会起作用。我需要一些合理有效的东西,但要与我自己编写的另一个代码库进行比较。
答案 0 :(得分:5)
这有点晚了,但为了将来参考,scikit-image的实施时间为HOG。这是一个单一的函数,可以提取给定图像的方向梯度直方图。
答案 1 :(得分:0)
看一下http://sourceforge.net/projects/hogtrainingtuto/?_test=beta的一些HOG python代码和一堆C,cpp,java实现。至于python和opencv的真实文档,我也不知所措。但这应该对你有所帮助
答案 2 :(得分:0)
答案 3 :(得分:0)
'Poselets'实现here有一个HOG描述符的C实现,尽管用matlab编写,但可以使用ctypes和numpy来适应python。
您可以删除所有mex例程,并在C函数中将输入和输出数组声明为float *
。
你需要确保你的numpy数组是Fortran连续的。这可以通过以下方式实现:
image = image.copy(order='F', dtype = float32)