2014-12-19 96 views
0

我对OpenCV非常陌生,我想创建使用SVM的简单对象检测器。而不是HOG,我想从我的对象颜色直方图中提取(例如),但是我找不到有关OpenCV的任何信息,无处不在使用HOG。使用颜色直方图训练支持OpenCV的SVM

而我的第二个问题是:SVM的Python实现是否比C++具有更少的功能(对于OpenCV)?

回答

2

您可以使用OpenCV函数calcHist来计算直方图。

calcHist(&bgr_planes[0], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate); 

其中,

  • & bgr_planes [0]:源阵列(多个)
  • 1:源阵列的数量
  • 0:信道(DIM)将被测量。在这种情况下,它仅仅是 强度所以我们只写0。
  • 垫():要在源阵列上使用的掩模
  • b_hist:其中直方图将存储
  • 1垫目标:直方图的维度。
  • HISTSIZE:每次每使用尺寸仓的数量
  • histRange:每每个维度 均匀待测量的值的范围和积累

参考docs获得更多信息。

您也可以查看this answer,其中讨论了C++ OpenCV SVM实现和this answer,其中讨论了Python OpenCV SVM实现入门。

+0

感谢您的回答!而在&bgr_planes我应该把我所有的积极和消极的图像?之后,我必须教直方图SVM,我会得到这个功能? – 2014-12-19 06:23:15