opencv3.0版本中,实现正态贝叶斯分类器(Normal Bayes Classifier)分类实例

#include "stdafx.h"
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace cv::ml; int main(int, char**)
{
int width = , height = ;
Mat image = Mat::zeros(height, width, CV_8UC3); //创建窗口可视化 // 设置训练数据
int labels[] = { , -, , ,-,,-,,-,- };
Mat labelsMat(, , CV_32SC1, labels); float trainingData[][] = { { , }, { , }, { , }, { , }, { , },
{ , }, { , } , { , } , { , } , { , } };
Mat trainingDataMat(, , CV_32FC1, trainingData); // 创建贝叶斯分类器
Ptr<NormalBayesClassifier> model=NormalBayesClassifier::create(); // 设置训练数据
Ptr<TrainData> tData =TrainData::create(trainingDataMat, ROW_SAMPLE, labelsMat); //训练分类器
model->train(tData); Vec3b green(, , ), blue(, , );
// Show the decision regions given by the SVM
for (int i = ; i < image.rows; ++i)
for (int j = ; j < image.cols; ++j)
{
Mat sampleMat = (Mat_<float>(, ) << j, i); //生成测试数据
float response = model->predict(sampleMat); //进行预测,返回1或-1 if (response == )
image.at<Vec3b>(i, j) = green;
else if (response == -)
image.at<Vec3b>(i, j) = blue;
} // 显示训练数据
int thickness = -;
int lineType = ;
Scalar c1 = Scalar::all(); //标记为1的显示成黑点
Scalar c2 = Scalar::all(); //标记成-1的显示成白点
//绘图时,先宽后高,对应先列后行
for (int i = ; i < labelsMat.rows; i++)
{
const float* v = trainingDataMat.ptr<float>(i); //取出每行的头指针
Point pt = Point((int)v[], (int)v[]);
if (labels[i] == )
circle(image, pt, , c1, thickness, lineType);
else
circle(image, pt, , c2, thickness, lineType); } imshow("normal Bayessian classifier Simple Example", image); // show it to the user
waitKey(); }

如果将数据换成是图片的像素值 ,则可实现图片的分类。

在opencv3中实现机器学习之:利用正态贝叶斯分类的更多相关文章

  1. 在opencv3中的机器学习算法

    在opencv3.0中,提供了一个ml.cpp的文件,这里面全是机器学习的算法,共提供了这么几种: 1.正态贝叶斯:normal Bayessian classifier    我已在另外一篇博文中介 ...

  2. 在opencv3中实现机器学习算法之:利用最近邻算法(knn)实现手写数字分类

    手写数字digits分类,这可是深度学习算法的入门练习.而且还有专门的手写数字MINIST库.opencv提供了一张手写数字图片给我们,先来看看 这是一张密密麻麻的手写数字图:图片大小为1000*20 ...

  3. 在opencv3中实现机器学习之:利用逻辑斯谛回归(logistic regression)分类

    logistic regression,注意这个单词logistic ,并不是逻辑(logic)的意思,音译过来应该是逻辑斯谛回归,或者直接叫logistic回归,并不是什么逻辑回归.大部分人都叫成逻 ...

  4. 在opencv3中实现机器学习之:利用svm(支持向量机)分类

    svm分类算法在opencv3中有了很大的变动,取消了CvSVMParams这个类,因此在参数设定上会有些改变. opencv中的svm分类代码,来源于libsvm. #include "s ...

  5. opencv3中的机器学习算法之:EM算法

    不同于其它的机器学习模型,EM算法是一种非监督的学习算法,它的输入数据事先不需要进行标注.相反,该算法从给定的样本集中,能计算出高斯混和参数的最大似然估计.也能得到每个样本对应的标注值,类似于kmea ...

  6. 在opencv3中的机器学习算法练习:对OCR进行分类

    OCR (Optical Character Recognition,光学字符识别),我们这个练习就是对OCR英文字母进行识别.得到一张OCR图片后,提取出字符相关的ROI图像,并且大小归一化,整个图 ...

  7. OpenCV Machine Learning 之 正态贝叶斯分类器 (Normal Bayes Classifier)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhjm07054115/article/details/27631913

  8. python中Scikit-Learn机器学习模块

    Scikit-Learn是基于python的机器学习模块,基于BSD开源许可证.这个项目最早由DavidCournapeau 在2007 年发起的,目前也是由社区自愿者进行维护. Scikit-Lea ...

  9. R语言中的机器学习包

    R语言中的机器学习包   Machine Learning & Statistical Learning (机器学习 & 统计学习)  网址:http://cran.r-project ...

随机推荐

  1. iOS背景模糊效果3中方法总结

    1.首先得把界面转化成图片,给uiview加一个类目如下: #import "UIView+Screen.h" @implementation UIView (Screen) // ...

  2. androidannotation study(1)---Activity, Fragment,Custom Class & Custom View

    androidannotation 是github上的一个开源项目. 主要是注解机制,可以改善android写代码的效率. Activity 使用 1.@EActivity 注解 可想而知,servi ...

  3. MongoDb的bin目录下文件mongod,mongo,mongostat命令的说明及使用

    MongoDB的下载地址:http://www.mongodb.org/downloads. 下载好直接解压安装包,即可使用. bin目录下的几个文件说明: mongo 客户端程序,连接MongoDB ...

  4. du df 查看文件和文件夹大小

    http://www.cnblogs.com/benio/archive/2010/10/13/1849946.html du -h df -h du -h --max-depth=1 //  查看当 ...

  5. MySQL的诡异同步问题-重复执行一条relay-log

    MySQL的诡异同步问题 近期遇到一个诡异的MySQL同步问题,经过多方分析和定位后发现居然是由于备份引发的,非常的奇葩,特此记录一下整个问题的分析和定位过程. 现象 同事扩容的一台slave死活追不 ...

  6. 从零开始学习Mysql的学习记录

    2015/06/18 16:23更新,由于QQ邮件的图片链接失效了,请在云笔记链接查看 http://note.youdao.com/share/?id=f0b2ed30a3fc8e57c381e3d ...

  7. Python pass语句作用与用法

    Python中的pass语句作用是什么?表示它不做任何事情,一般用做占位语句.pass语句具体作用及使用方法,我们往下看. pass语句在函数中的作用 当你在编写一个程序时,执行语句部分思路还没有完成 ...

  8. SQL Server 2012 AlwaysOn集群配置指南

    1. AlwaysOn介绍 AlwaysOn是SQL Server 2012提供的全新综合.灵活.高效经济的高可用性和灾难恢复解决方案.它整合了镜像和群集的功能,基于OS 故障转移群集(Windows ...

  9. Design Pattern :Factory and Reflect in java

    interface page {     void Render(); } class pageA implements page {     @Override     public void Re ...

  10. MIT jos 6.828 Fall 2014 训练记录(lab 1)

    注: 源代码参见我的github:https://github.com/YaoZengzeng/jos Part 1: PC Bootstrap +------------------+ <- ...