opencv的一个神经网络例程(转自http://blog.sina.com.cn/s/blog_61e10f020101bv94.html)
2016-07-16 16:10
615 查看
opencv的一个神经网络例程(转)
(2013-07-19 00:45:34)![](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
转载▼
分类: OPENCV学习笔记 |
//Coded by L. Wei
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main()
{
//Setup the BPNetwork
CvANN_MLP bp;
// Set up BPNetwork's parameters
CvANN_MLP_TrainParams params;
params.train_method=CvANN_MLP_TrainParams::BACKPROP;
params.bp_dw_scale=0.1;
params.bp_moment_scale=0.1;
//params.train_method=CvANN_MLP_TrainParams::RPROP;
//params.rp_dw0 = 0.1;
//params.rp_dw_plus = 1.2;
//params.rp_dw_minus = 0.5;
//params.rp_dw_min = FLT_EPSILON;
//params.rp_dw_max = 50.;
// Set up training data
float labels[3][5] = {{0,0,0,0,0},{1,1,1,1,1},{0,0,0,0,0}};
Mat labelsMat(3, 5, CV_32FC1, labels);
float trainingData[3][5] = { {1,2,3,4,5},{111,112,113,114,115}, {21,22,23,24,25} };
Mat trainingDataMat(3, 5, CV_32FC1, trainingData);
Mat layerSizes=(Mat_(1,5) << 5,2,2,2,5);
bp.create(layerSizes,CvANN_MLP::SIGMOID_SYM);//CvANN_MLP::SIGMOID_SYM
//CvANN_MLP::GAUSSIAN
//CvANN_MLP::IDENTITY
bp.train(trainingDataMat, labelsMat, Mat(),Mat(), params);
// Data for visual representation
int width = 512, height = 512;
Mat image = Mat::zeros(height, width, CV_8UC3);
Vec3b green(0,255,0), blue (255,0,0);
// Show the decision regions given by the SVM
for (int i = 0; i < image.rows; ++i)
for (int j = 0; j < image.cols; ++j)
{
Mat sampleMat = (Mat_(1,5) << i,j,0,0,0);
Mat responseMat;
bp.predict(sampleMat,responseMat);
float* p=responseMat.ptr(0);
int response=0;
for(int i=0;i<5;i++){
// cout<<p[i]<<" ";
response+=p[i];
}
if (response >2)
image.at(j, i) = green;
else
image.at(j, i) = blue;
}
// Show the training data
int thickness = -1;
int lineType = 8;
circle( image, Point(501, 10), 5, Scalar( 0, 0, 0), thickness, lineType);
circle( image, Point(255, 10), 5, Scalar(255, 255, 255), thickness, lineType);
circle( image, Point(501, 255), 5, Scalar(255, 255, 255), thickness, lineType);
circle( image, Point( 10, 501), 5, Scalar(255, 255, 255), thickness, lineType);
imwrite("result.png", image); // save the image
imshow("BP Simple Example", image); // show it to the user
waitKey(0);
}
相关文章推荐
- php $_SERVER['HTTP_USER_AGENT']
- cas 在 反向代理环境中的https 配置
- Android 4.4 Kitkat 使能有线网络 Ethernet
- 微信公众平台消息接口开发之微信浏览器HTTP_USER_AGENT判断
- 计算机网络(13)-----java nio手动实现简单的http服务器
- HTTPS为什么安全 &分析 HTTPS 连接建立全过程
- 网络编程--UDP套接字的使用举例
- 计算机网络(12)-----HTTP协议详解
- 2016年全网营销中太原网络营销师讲【新媒体】思路
- 网络游戏封包基础知识
- Linux2操作篇 -系统日志性能与网络管理
- 网络编程--套接字的简单使用
- HDU 3616 最小割
- 网络编程--实现用户登录验证功能
- 多线程TcpServer
- HttpHandler与HttpModule的用处与区别
- 全平台简易接入ROS机器人系统网络方法
- Volley请求网络简单学习
- Volley第三方请求网络数据
- 白话解释 对称加密算法 VS 非对称加密算法 OSI模型,TLS/SSL 及 HTTPS