这几天没事,想着再学点一些视觉识别方向的东西,因为之前做了验证码识别,有了机器学习的信心,因此这次打算做个手势识别,参考了很多网上的图像处理方式,中间也遇到了很多问题,最终算是做出来了吧. 1.训练集获取 训练集获取用opencv打开摄像头进行录制,录制过程中对图像进行初步的处理,以满足训练集的降噪要求. 初步处理的函数如图 然后是录制 这里录制时指定了录制框,按下p进行保存.q退出. 2.搭建CNN 本来是直接用的tensorflow,之前也用的是,但是后来改用了keras,一来是因为我在te…
我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序. 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等. 废话不多,先看一下基本的界面设计,以及主要功能: 相信对于Qt有一些了解的人都不会对这个界面的设计感到陌生吧!(该死,该死!)我们向下走: 紧接着是Qt导入OPenCV2.4.4的库文件:(先看一下Qt的工程文件吧) #----------------------------------------…
使用ANN神经网络训练数据后进行手势识别. #include "header.h" int main() { ; //训练每类图片数量 ; //训练类数3:石头剪刀布 ; ; string Name, Path; } }; //每一行一个训练样本 } }; //训练样本标签 cout << "training Data.........\n"; ; i < class_num; i++){ ; Path = getstring(i + ) + &q…
上一篇文章中介绍了如何使用OpenCV自带的haar分类器进行人脸识别(点我打开). 这次我试着自己去训练一个haar分类器,前后花了两天,最后总算是训练完了.不过效果并不是特别理想,由于我是在自己的笔记本上进行训练,为减少训练时间我的样本量不是很大,最后也只是勉强看看效果了.网上有关的资料和博客可以说很多了,只要耐心点总是能成功的. 采集样本: 首先要训练,就得有训练集.网上有很多国外高校开源的库可供下载: 1.卡耐基梅隆大学图像数据库(点我打开) 2.MIT人脸数据库(点我打开) 3.ORL…
/*2017-1-14*/ /*视频的读取...*/ int g_n=0; void on_change(int pos,void *)//看来void*不能省! { printf("g_n id %d\n",pos); } int main() { //结构体第一个字母都是大写,函数小写 //打开视频文件:其实就是建立一个VideoCapture结构 VideoCapture capture("E:\\vedio\\01.avi"); //检测是否正常打开:成功打…
#include<iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; Mat img4 = imread("LinuxLogo.jpg"); 2 // 创建画"窗口 namedWindow("); // 在窗口中显示游戏原画 imshow(", img4); // 等待6…
关于opencv调用摄像头的问题主要是因为摄像头的打开有延时.在显示图像前,要用if语句判断图像是否存在.(否则会报错) 具体的:教程里的源程序,将if条件句里,break去掉,并增加else语句. #include<opencv2/opencv.hpp> #include<cv.h> using namespace cv; using namespace std; //-----------------------------------[main()函数]-----------…
OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).OpenCV2之后的C++接口除了Haar特征以外也可以使用LBP特征. 介绍haar分类器理论知识: 1.http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html(讲的很详细): 2.http://blog.csdn.net/zy1034092330/article/details…
HighGUI组件 图像的载入:imread()函数 Mat imread(const string& filename, int flag = 1)其中flag=1代表读入RGB彩色图像,-1表示读取原始图像,0表示读取灰度图(TODO表格) 图像的显示:imshow()函数(改变窗口大小) imshow时改变窗口大小, ScreenShot from CSDN string winname = "Wind"; namedWindow(winname, 0);//这个0是何意…
1. epoch 在代码中经常见到n_epochs这个参数,该参数到底是什么意思呢?答案如下: 在一个epoch中,所有训练集数据使用一次 one epoch = one forward pass and one backward pass of all the training examples 2. batch_size 一般情况下,一个训练集中会有大量的samples,为了提高训练速度,会将整个training set分为n_batch组,每组包含batch_size个samples 即:…