资源简介
本人菜鸟一个,未学习过模式识别、计算机等学科,贻笑大方之处恳请谅解。这是自己学习中利用OpenCV,通过SVM识别图像中图形链码,完成图形识别的小程序,特分享一下。
代码片段和文件信息
//C++标准输入输出库
#include
#include
//OpenCV2标准头文件
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main()
{
// step 1:
//训练数据的分类标记,即3类
float labels[7] = {1.01.01.0 -1.0 -1.0-1.02.0};
CvMat labelsMat = cvMat(7 1 CV_32FC1 labels);
//训练数据矩阵
//ps:可以自己添加不规则的链码进行训练
float trainingData[7][80] = { {0000707767666656554544443433232222121101}//圆形链码
{5444555656666677700000010122122223224334}//圆形链码
{4444343323222212110100007077676666565545}//圆形链码
{0000000000666666666644444444442222222222}//正方形链码
{6666666666000000000000222222222444444444}//正方形链码
{0000000000000666666644444444444442222222}//正方形链码
{6556566,5655656656556566565565660000000000000000000000000000000000003232232332322}//三角形
};
CvMat trainingDataMat = cvMat(7 80 CV_32FC1 trainingData);
// step 2:
//训练参数设定
CvSVMParams params;
params.svm_type = CvSVM::C_SVC; //SVM类型
params.kernel_type = CvSVM::LINEAR; //核函数的类型
//SVM训练过程的终止条件 max_iter:最大迭代次数 epsilon:结果的精确性
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER 1000000 FLT_EPSILON);
//params.term_crit = cvTermCriteria(CV_TERMCRIT_EPS 1000000 FLT_EPSILON);
// step 3:
//启动训练过程
CvSVM SVM;
SVM.train( &trainingDataMat &labelsMat NULL NULL params);
// huo qu te zheng miao hui zi
Mat imageSource=imread(“/home/*******/******.bmp“0);//读取图片,变成单通道。
Mat image;
GaussianBlur(imageSourceimageSize(33)0);
Canny(imageimage100250);
CvMat _srcimage = image;
CvMemStorage* storage = cvCreateMemStorage();//采用默认大小,即:0.
CvSeq* first_contour = NULL;
int Nc = cvFindContours(&_srcimagestorage&first_contoursizeof(CvContour)
CV_RETR_CCOMP
CV_CHAIN_CODE///*这个是关键参数*/
cvPoint(0 0)
);
CvChain* chain = 0;
vector c1;
CvSeq* h;
for( CvSeq* c = first_contour; c != NULL;c = c->h_next)
{
int ContourCount = 0;
int total = c->total;
float DataBuffer[80];
int Step = 2;
if (total > 40) {
Step = total/80;
}
else Step = 1;
if(total<20)
c =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-11-30 15:33 recogshape\src\
目录 0 2017-11-30 15:33 recogshape\src\recogshape\
文件 7130 2017-11-24 20:56 recogshape\src\recogshape\CMakeLists.txt
文件 6737 2017-11-24 20:50 recogshape\src\recogshape\CMakeLists.txt~
文件 1903 2017-11-24 20:50 recogshape\src\recogshape\package.xm
文件 5024 2017-11-30 15:48 recogshape\src\recogshape\recogshape.cpp
目录 0 2017-11-30 15:33 recogshape\
- 上一篇:整理的停用词库
- 下一篇:opencv_calib3d310d.dll
相关资源
- opencv_calib3d310d.dll
- libsvm工具包含网格法查找最优解函数
- libsvm工具包含网格法查找最优解函数
- libsvm工具包含网格法查找最优解函数
- opencv2.4.11配置文件
- 采用SVM控制的四桥臂三相逆变器
- 图像特征之方向直方图OPENCV程序
- 遗传算法波段选择
- 图像二值化 opencv 基本全局阈值法
- OpenCV-根据颜色进行目标检测
- OpenCV轮廓提取的源代码
- opencv 中模板匹配的完整
- lee的caffe配置install-opencv-master.zip
- 专业图形工具Opencv For Unity的插件 v
- 利用FSVM实现对手写数字的识别
- 车牌定位cascade文件
- opencv摄像机双目标定代码
- 支持向量机SVM多分类算法实现
- 基于Cascade的车牌检测文件 haar算法输
- SVM_Iris.rar
- 粒子群PSO优化SVM做预测
- Qt Creator+OpenCV410(vc14)开发的图片查
- 人脸识别Qt,opencv2.4.9
- 基于qt+opencv的人脸识别183028
- 基于SVM电力系统短期负荷预测的其中
- opencv 反透视变换矫正畸变
- 适用于libsvm的iris数据集
- 《Win10 opencv4.4 dnn cuda源码编译/安装说
- Dlib FaceLandmark Detector v1.2.0
- OPENCV技术.txt
评论
共有 条评论