OpenCV predict()函数的几种用法

发布时间:2024-07-08 18:38:39 作者:yexindonglai@163.com 阅读(344)

前言

cv::ml::SVM::predict() 是 OpenCV 中 SVM 模型的预测函数,用于对输入的样本进行分类预测。它有以下用法:

基本用法:

  1. int prediction = model->predict(sample);
  • model 是已经训练好的 cv::ml::SVM 对象
  • sample 是待预测的单个样本,以 cv::Mat 格式表示

函数返回预测的类别标签

批量预测:

  1. cv::Mat predictions;
  2. model->predict(samples, predictions);
  • samples 是待预测的样本集合,以 cv::Mat 格式表示
  • predictions 是存储预测结果的输出 cv::Mat 对象

函数将对 samples 中的所有样本进行预测,并将结果存储在 predictions 中

带概率输出的预测:

  1. double result = 0.0;
  2. model->predict(sample, &result, true);
  • sample 是待预测的单个样本
  • result 是存储预测概率的输出变量
  • 将 true 作为第三个参数,表示希望获得预测概率而不只是类别标签

函数返回预测的类别标签,同时将预测概率存储在 result 中

带概率输出的批量预测:

  1. cv::Mat predictions, probabilities;
  2. model->predict(samples, predictions, probabilities);
  • samples 是待预测的样本集合
  • predictions 存储预测的类别标签
  • probabilities 存储每个样本的预测概率

带概率输出的单个预测

  1. int label = 0;
  2. double confidence;
  3. model_test->predict(sample,label,confidence);
  • sample: 是待预测的样本
  • label: 预测的类别标签
  • confidence : 是存储预测概率的输出变量

总之,cv::ml::SVM::predict() 函数提供了多种预测方式,可以满足不同的需求。开发者可以根据具体情况选择合适的使用方式,例如单个样本预测、批量预测,以及是否需要概率输出等。

关键字OpenCV