【发布时间】:2019-08-15 11:55:13
【问题描述】:
我正在使用 C++ 和 OpenCV 3.3.1
我尝试使用 OpenCV 训练 SVM,我的步骤是:
- 预处理图像
- 使用 SURF 进行特征提取
- 创建用于学习正面和负面图像的数据集
- 重塑图像 1 行 1 功能
- 使用 -1 表示负数和 +1 表示正数来创建 labelmat
- 学习 SVM
- 预测
现在我的问题是: 假设我的图像是 128 x 128 并且在特征提取之后我得到了一个 Mat 重塑后有 16 行和 128 列,我得到了 1 行和 2048 列,现在是用这种大小的行和列训练的 SVM。当我尝试用我的 SVM 进行预测时,我遇到了一个问题,即 SVM 想要相同大小的特征 Mat(1 行和 2048 列),但我的预测图像与学习图像有更多的特征,所以预测的 Mat 是一种方法根据需要更大。
与我用于学习的图像相同的预测效果很好,所以我猜 SVM 有效。
如何将 SVM 用于更大的图像?
【问题讨论】: