资源简介
本人菜鸟一个,未学习过模式识别、计算机等学科,贻笑大方之处恳请谅解。这是自己学习中利用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的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- 基于蚁群算法优化SVM的瓦斯涌出量预
- 基于模糊聚类和SVM的瓦斯涌出量预测
- 基于CAN总线与ZigBee的瓦斯实时监测及
- SVM-Light资料,使用说明
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- 果蝇算法融合SVM的开采沉陷预测模型
- opencv_contrib-3.4.0.zip
- BoW|Pyramid BoW+SVM进行图像分类
- opencv2.4.9源码分析——SIFT
- 基于libsvm的图像分割代码
- 用两个摄像头实现,双目标定,双目
- 基于SVM及两类运动想象的多通道特征
- 小波包和SVM在轴承故障识别中的应用
- 林智仁教授最新版本LibSVM工具箱
- 台湾林教授的支持向量机libsvm
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 新闻分类语料
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- libsvm-3.20
- opencv视觉测距
评论
共有 条评论