我是 OpenCV 的新手,我想创建使用 SVM 的简单对象检测器。而不是 HOG,我想从我的对象颜色直方图中提取(例如),但我找不到关于 OpenCV 的任何信息,到处都在使用 HOG。
我的第二个问题:SVM 的 Python 实现是否比 C++(都用于 OpenCV)功能少?
最佳答案
您可以使用 OpenCV 函数 calcHist
来计算直方图。
calcHist(&bgr_planes[0], 1, 0, Mat(), b_hist, 1, &histSize, &histRange, uniform, accumulate );
在哪里,
- &bgr_planes[0]: 源数组
- 1:源数组个数
- 0:要测量的 channel (暗淡)。在这种情况下,它只是 强度,所以我们只写 0。
- Mat():要在源数组上使用的掩码
- b_hist:存储直方图的 Mat 对象
- 1:直方图维度。
- histSize:每个使用维度的 bin 数
- histRange:每个维度要测量的值的范围 统一积累
引用docs获取更多信息。
你也可以看看this answer其中讨论了 C++ OpenCV SVM 实现和 this answer其中讨论了入门的 Python OpenCV SVM 实现。
关于python - 使用颜色直方图使用 OpenCV 训练 SVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27558431/