我在使用 OpenCV4Android 中的 HOGDescriptor.setSVMDetector 功能时遇到了一些问题。
Android 需要为该HOGDescriptor.setSVMDetector()
方法传递一个 Mat()。请注意,这与 C++ 规范不同,其中函数声明为setSVMDetector(const vector<float>& detector)
. 问题是如何输入线性 SVM 模型 - 也就是说,如何将浮点值数组转换为 OpenCV4Android Mat 以便 HOGDescriptor 对象接受它作为 setSVMDetector 方法的输入?
我已经尝试分析HOGDescriptor.getDefaultPeopleDetector()
. 这给出了一个具有 3781 行、1 列和类型 CV_32F 的 Mat。当重新创建它时,以及尝试任何变化时(例如转置、具有单个数组条目的 1x1 Mat 等),输出为:
error: checkDetectorSize() in function virtual void cv::HOGDescriptor::setSVMDetector(cv::InputArray)
任何有关如何在 Android 中以这种方式设置 SVM 检测器的建议都将不胜感激!