【转载自】《OpenCV笔记(4)实现神经网络(ANN)》
作者的原文参考了:《OpenCV中使用神经网络 CvANN_MLP》

实际上的预测结果是并非一个确定值,所以即使用训练集去做测试,也可能出现不完全匹配的情况。(后续需进一步实验证实)

备份代码在此:

#include <stdio.h>
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/ml/ml.hpp"using namespace cv;
using namespace ml;
using namespace std;int main()
{int width = 512, height = 512;Mat img = Mat::zeros(height, width, CV_8UC3);//建立训练样本float train_data[6][2] = {{500,60},{245,40},{480,250},{160,380},{400,25},{55,400}};float labels[6] = { 0, 0, 0, 1, 0, 1 }; Mat train_data_mat(6, 2, CV_32FC1, train_data);Mat labels_mat(6, 1, CV_32FC1, labels);Mat layers_size = (Mat_<int>(1, 3) << 2, 6, 1);//模型创建和参数设置Ptr<ml::ANN_MLP> ann = ml::ANN_MLP::create();//创建一个空模型ann->setLayerSizes(layers_size);ann->setTrainMethod(ml::ANN_MLP::BACKPROP, 0.1, 0.1);ann->setActivationFunction(ml::ANN_MLP::SIGMOID_SYM);ann->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 10000, 1e-6));//设置训练数据并训练分类器Ptr<TrainData> tData = TrainData::create(train_data_mat, ROW_SAMPLE, labels_mat);ann->train(tData);//显示分类的结果Vec3b green(0, 255, 0), blue(255, 0, 0);for (int i = 0; i<img.rows; ++i) {for (int j = 0; j<img.cols; ++j) {Mat sample_mat = (Mat_<float>(1, 2) << j, i);Mat response_mat;ann->predict(sample_mat, response_mat);float response = response_mat.ptr<float>(0)[0];if (response > 0.5) {img.at<Vec3b>(i, j) = green;}else if (response < 0.5) {img.at<Vec3b>(i, j) = blue;}}}//画出训练样本数据int thickness = -1;int lineType = 8;circle(img, Point(500, 60), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(245, 40), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(480, 250), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(160, 380), 5, Scalar(0, 0, 255), thickness, lineType);circle(img, Point(400, 25), 5, Scalar(255, 255, 255), thickness, lineType);circle(img, Point(55, 400), 5, Scalar(0, 0, 255), thickness, lineType);imshow("Example", img);waitKey(0);
}

OpenCV神经网络ANN代码编译运行与解读(二)相关推荐

  1. OpenCV神经网络ANN代码编译运行与解读(一)

    运行环境搭建:参考<VS2013安装OpenCV4.1版本并搭建一个小程序> 基于OpenCV4.1.0中neural_network.cpp的例子代码. 参考了<OpenCV3[神 ...

  2. caffe SSD 代码编译运行流程及问题解决

    caffe SSD 代码编译运行流程及问题解决 该文基于以下代码: https://github.com/weiliu89/caffe/tree/ssd down下来后,进入目录 -rw-rw-r-- ...

  3. 该段代码编译运行后显示的是蓝色背景,白色闪烁字的效果

    int main(int argc,char **argv) {         printf("\033[44;37;5m hello world\033[0m\n");     ...

  4. 在线代码编译运行工具

    在线代码编译运行工具 如果需要学习语言,比如练习一些算法,或者跑一些别人写的代码,有一些语言特性不太了解需要写一些简单的 demo 做一些验证,那么先搭建一个环境去跑就有一点麻烦了,无需搭建本地环境的 ...

  5. cmd命令行进行C++代码编译运行;实现进程调度和存储管理

    最近刚考完一门,也算是有点闲暇时间,写个博客,就当做操作系统实验的笔记吧.        客官先别急着白嫖点个赞再看吧求求了 文章目录 一.在cmd命令行下编译运行C++源代码 1.进入目标目录 2. ...

  6. VTK Example代码编译运行

    在VTK源码包的Example中,每个模块的例子都有一个CMakeList文件,可之间编译运行.  但VTK版本更新快,模块经常小改,而对于VTK6.x的Example的CMakeLists却没有改动 ...

  7. java生成cmd jar包_Java程序运行机制及cmd编译运行探究(二) cmd编译运行Java程序并打成jar包...

    目标:写一个RandomUtils.java工具类,返回一个随机数,并把这个类的字节码文件打成jar包 在Java运行机制及cmd编译运行探究(一)准备工作一文中,我总结了一部分要用到的cmd及编译运 ...

  8. 在ubuntu系统下使用gcc和makefile实现c语言程序的编译运行

    目录 前言 一.使用gcc命令完成编译c语言程序 1.编写c语言程序 main1.c sub1.h sub1.c 2.gcc命令编译 步骤一命令:gcc -c sub1.c作用:将sub1.c程序转换 ...

  9. Opencv中ANN神经网络使用示例

    前一段儿想用opencv做一下数字识别,用神经网络做识别. 在网上搜了一下关于opencv中ANN的使用方法,@小魏的修行路 的[模式识别]OpenCV中使用神经网络 CvANN_MLP 这篇文章写得 ...

最新文章

  1. 《数学之美》第14章 余弦定理和新闻的分类
  2. 重新学.Net[二]——从编译到运行
  3. 买卖股票的最佳时机||
  4. 对三层架构的简单改进
  5. 解决eclipse无法解析导入org.eclipse.swt库
  6. 如何在报表中实现算法的可挂接需求
  7. 鸿蒙 OS 背后神秘人物曝光!
  8. 自己动手写个小框架之三
  9. multism中ui和uo应该怎么表示_multisim12中XBP1怎么使用
  10. halcon入门之_提取遥控器字符并且写入txt文本
  11. 3dmax的学习技巧大全
  12. 小米手机刷android one,小米手机(Mi One)刷机教程详解完整版 (刷MIUI官方刷机包)...
  13. HDwiki+discuz在启用https下的整合问题
  14. ChatGPT 角色扮演调教文案收集
  15. 九连环问题c语言程序,九连环答案生成器的C源程序 (转)
  16. 使用freemarker导出html格式的word(调整页边距,页面视图,正常表格样式)
  17. ACCESS的解密是如此简单!
  18. LCM通信库的安装及使用
  19. 前端如何在浏览器种访问获取你windows本地得文件
  20. Which在什么从句中指代前文整个句子

热门文章

  1. 圣诞日记2010-12-25:认清形势,看清方向,正确选择,努力拼搏(更新 )
  2. android 单选框 icon,Android中的普通对话框、单选对话框、多选对话框、带Icon的对话框、以及自定义Adapter和自定义View对话框详解...
  3. 怎么在windows安装python模块_如何在windows环境下安装python里的模块
  4. winrar压缩文件但是排除指定目录
  5. 安装vue脚手架创建项目
  6. scrapy实现post请求与请求传参
  7. Spring Boot实战pdf
  8. 文本编辑器左边显示行数
  9. 商场促销——策略模式
  10. Flask 模型操作