摘要:
知识点是查找轮廓findContours()和绘制轮廓drawContours(),具体查阅我的博客多轮廓提取 阅读全文
摘要:
官方源代码中有一点瑕疵,高斯分布产生的随机点points的坐标可能出现负数或大于500的数。如横坐标均值是0,方差是25,那么横坐标随机值中会出现负数。 修改了两处:随机数生成种子是时间、随机点points坐标保证在500*500以内。 【知识点1】聚类函数 double kmeans( Input 阅读全文
摘要:
以MFC为例,Button的单击事件启动我桌面的图像标定工具labelImg.exe ShellExecute(NULL, _T("open"), _T("C:\\Users\\jv\\Desktop\\labelImg.exe"), NULL, NULL, SW_SHOWNORMAL); 阅读全文
摘要:
此案例用于二分类问题(鼠标左键、右键点出两类点,会实时画出分界线),最终得到一条分界线(直线):f(x)=weights*x+shift 源码不再贴出,只讲解最核心的doTrain()里的内容。参数含义翻译自ml.hpp文件。 与SVM不同,SVMSGD不需要设置核函数。 【参数】默认值见下述代码 阅读全文
摘要:
trainAuto()函数中,使用了K折交叉验证来优化参数,会自动寻找最优参数。 两种用法:标黄的等效 virtual bool trainAuto( const Ptr<TrainData>& data, int kFold = 10,ParamGrid Cgrid = getDefaultGri 阅读全文
摘要:
有所更改,参数不求完备,但求实用。源码参考D:\source\opencv-3.4.9\samples\cpp\train_HOG.cpp,OpenCV3.4.9版本,内容与低版本略有不同。 【功能】HOG特征适合外形相似的目标识别。如图片中识别行人。 【知识点1】 方向梯度直方图(Histogra 阅读全文
摘要:
如何使用,请查阅我的另两篇博客——SVM的使用train(),SVM的使用trainAuto(),K折交叉验证优化参数 核(由上到下):线性、多项式、径向基函数、Sigmoid、指数卡方分布、直方图交运算 使用方式:参数范围可以参考上边的链接 //SVM类型及参数 svm->setType(SVM: 阅读全文
摘要:
依据机器学习算法如何学习数据可分为3类: 有监督学习:从有标签的数据学习,得到模型参数,对测试数据正确分类; 无监督学习:没有标签,计算机自己寻找输入数据可能的模型; 强化学习(reinforcement learning):计算机与动态环境交互,学习错误反馈达到更优的目的。 依据机器学习期望结果来 阅读全文
摘要:
注意:数据结构的一致性,在高维度数据一般使用rbf核函数,使用网格搜索思想迭代求出gamma和c。 每行为一个样本,数据类型都围绕标黄代码而定义的。 SVM训练如下坐标(左边一列为A类,右边为B类),然后预测给出的坐标属于哪一类。 #include<opencv2\opencv.hpp> #incl 阅读全文
摘要:
Vec是类,OpenCV中的向量模板类,具体有Vec2b,Vec3b,Vec2s,Vec3s等。 以Vec3b、Vec3s为例,其实是给Vec类起了一个别名。 typedef Vec<uchar,3> Vec3b; //Vec3b就是有3个uchar类型元素的向量。 typedef Vec<shor 阅读全文