opencv3.0正太贝叶斯分类器api讲解

来源:互联网 发布:变音软件 编辑:程序博客网 时间:2024/06/06 08:41

1.官方文档

学习新东西时,首先弄懂原理,然后手动实现,最后查看经典的库调用,对于最后一步,我们需要查看官方文档。

opencv2.0和opencv3.0之间关于normalbayesclassifier的接口略有变化,opencv3.0关于此部分的描述点击此处


2.关键的几个接口

opencv3.0
(1)创建正态贝叶斯分类器:
Ptr<NormalBayesClassifier> model = NormalBayesClassifier::create();
(2)设置训练数据:
        float trainingData[8][3] = { { 6, 180, 12 }, { 5.92, 190, 11 },{ 5.58, 170, 12 }, { 5.92, 165, 10 },{ 5, 100, 6 },{ 5.5, 150, 8 }, { 5.42, 130, 7 }, { 5.75, 150, 9 } };Mat trainingDataMat(8, 3, CV_32FC1, trainingData);cout << trainingDataMat << endl;//1---M    0---F    int labels[8] = { 1, 1, 1, 1, -1, -1, -1, -1 };Mat labelsMat(8, 1, CV_32SC1, labels);cout << labelsMat << endl;Ptr<TrainData> tData = TrainData::create(trainingDataMat, ROW_SAMPLE, labelsMat);
(3)训练分类器:
        model->train(tData);
4应用训练好的模型进行分类
float myData[3] = { 6, 130, 8 };Mat myDataMat(1, 3, CV_32FC1, myData);int res = model->predict(myDataMat);





原创粉丝点击