版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1背景研究1.2研究意义1.2研究现状1.4研究成果2.4阶段 第一部分:研究综鼠标,又称为识,只不过不需要专业头,仅仅通过现在笔记本自带的头即可实现。由于时间有限,本次研究当中所取得的成果和设计出的模型是使用某单块作为特征识别物,利用计算机大有提高,亦有望解决1.2中所述的诸多实际问题。第二部分研究步骤VisualStudio2012OpenCV3.0开源库,实立了一个简单的人机交互系统。基于计算机视觉的手势与识别流程图见图1-1。表示所研究的对象。输入对象的信息是二维图像,可以用矩阵MAT或IplImage类来表示二31、获得判断色块的阈值数据不便。采用6组滑条,分别控制HSV的最大最小值,并放弃了该设计方案。但提出了使用MFC并占用一个不常用按键的解决思路。第一次测
桌子 桌子 尺子 尺子.regline1Y1of F(ProbF=R-=AdjR-=Root=t[95%-.---.R- F(1,ProbofF(1,ProbofF====R-AdjR-11t[95%-.---.R- .regline4Y1.=F(ProbF==.R-=AdjR-=Root=t[95%-.---.R- F(ProbF(ProbofF=====R-AdjR-11.t[95%-.---.R- (1)桌上实验,前三次实验中平均=(2)尺上实验,后两次实验中平均结论=<后两次尺上实验表明,xy成高度线性关系,R^2=0.99991,鼠标“走直线”性能手拿245.00250.00255.00260.00265.00270.00275.00280.00285.00手2 结论:20*20个像素点内,其大小和一个图标大小相当,做一般的操作还第三部分研究结论第四部分组员的合作分方论,图别代,第五部分原始数据和参考文献附录一#include<iostream>#include"cv.h"#include"highgui.h"#include"c.h"usingnamespacestd;#include"opencv2/opencv.hpp"#include<afx.h>usingnamespacevoidAreaExtract(intpos);//色块提取函数intFirstUse(void);//初始化函数voidmousecontral(CvBox2Dbox,doublesarea);//鼠标控制函数intUse(void);//实际使用函数Matframe,Area;//原始图像和提取的图intintflag1=0;intinttimeremin=0,mark=0,mark2=0;//timeremin,markdoubles;doublethet;POINTpt_pre,pt_fix,pt_curintmain(intargc,char* {charflag;printf("欢迎使 鼠标软件\n是否继续{else{return0;{}}printf(Mattip;if(tip.empty()){cout<<"error";return-1;} 按任意键继续");tip=imread("3.jpg");if(tip.empty()){cout<<"error";return-1;} return0;}}int{FILE*fp;//文件操作,初始化数据doublesarea=0;printf("cannotopendata\nPleasetryagain!\n");fscanf(fp,"%d%d%d%d%d%d%lf\n",&hmix,&hmax,&smix,&smax,&vmixCapture // if {return-1;}while //并处理头来的图{capture>>frame;ifArea.create(frame.rows,frame.cols,CV_8UC1);//将区域的信息result=&IplImage(Area);//数据类型转换,将mat转换为//cvNamedWindow("Contour",//cvShowImage("Contour",result);IplImage*dst=NULL;CvMemStorage*storage1=cvCreateMemStorage(0);CvMemStorage*storage2=cvCreateMemStorage(0);CvSeq*contour1=0;CvSeq*contour2=0;intcontours1=0;intcontours2=0;CvScalarexternal_color;CvScalarhole_color;CvBox2Dbox;dstcvCreateImage(cvGetSize(result),result->depth,result->nChannels);//初始化contours1=cvFindContours(result,storage1,&contour1,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_NONE);doublefor(;contour1!=0;contour1=contour1-{}contours2=cvFindContours(result,storage2,&contour2,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_NONE);for(;contour2!=0;contour2=contour2-{{0,2,
external_color=CV_RGB(rand()&255,rand()&255,hole_color=CV_RGB(rand()&255,rand()&255,rand()&255);box=cvMinAreaRect2(contour2);CvPoint2D32fpoint[4];inti;for(i=0;i<4;{point[i].x=point[i].y=}cvBoxPoints(box,point);CvPointpt[4];for(i=0;i<4;{pt[i].x=pt[i].y=}cvLine(dst,pt[0],pt[1],CV_RGB(255,0,0),2,8,0cvLine(dst,pt[1],pt[2],CV_RGB(255,0,0),2,8,0cvLine(dst,pt[2],pt[3],CV_RGB(255,0,0),2,8,0cvLine(dst,pt[3],pt[0],CV_RGB(255,0,0),2,8,0}}cvNamedWindow("Contour",1); cvShowImage("Contour",dst);//imshow("show_img", // 的数if(cvWaitKey(20)==27)}return0;}int{Capture inti=0;doublesarea=0; if {return-1;}while //并处理头来的图{capture>>frame;if
rows,frame.cols,CV_8UC1);//将区域 信cvNamedWindow("参数设置,完成过后按Esc退出",1);IplImage*result;IplImage*dst;result=&IplImage(Area);//数据类型转换,将mat转换为CvMemStorage*storage1=cvCreateMemStorage(0);CvMemStorage*storage2=cvCreateMemStorage(0);CvSeq*contour1=0;CvSeq*contour2=0;intcontours1=0;intcontours2=0;CvScalarhole_color;CvBox2Dbox;dstcvCreateImage(cvGetSize(result),result->depth,result->nChannels);//初始化contours1=cvFindContours(result,storage1,&contour1,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_NONE);doublefor(;contour1!=0;contour1=contour1-{}contours2=cvFindContours(result,storage2,&contour2,sizeof(CvContour),CV_RETR_LIST,CV_CHAIN_APPROX_NONE);for(;contour2!=0;contour2=contour2-{{
external_color=CV_RGB(rand()&255,hole_color=CV_RGB(rand()&255,rand()&255,rand()&255);cvDrawContours(dst,contour2,external_color,0,2,8);//box=cvMinAreaRect2(contour2);CvPoint2D32fpoint[4];inti;for(i=0;i<4;{point[i].x=point[i].y=}cvBoxPoints(box,point);CvPointpt[4];for(i=0;i<4;{pt[i].x=pt[i].y=}cvLine(dst,pt[0],pt[1],CV_RGB(255,0,0),2,8,0cvLine(dst,pt[1],pt[2],CV_RGB(255,0,0),2,8,0cvLine(dst,pt[2],pt[3],CV_RGB(255,0,0),2,8,0cvLine(dst,pt[3],pt[0],CV_RGB(255,0,0),2,8,0}}cvShowImage("参数设置,完成过后按Esc退出",if(cvWaitKey(20)==27)}FILE*fp;{printf("cannot}fprintf(fp,"%d%d%d%d%d%d%lf\n",hmix,hmax,smix,smax,vmix,vmareturn0;}voidAreaExtract(int{Mathsv;vector<Mat>cvtColor(frame,hsv,CV_BGR2HSV);split(hsv,planes);//运用迭代器矩阵元MatIterator_<uchar>it_s=planes[1].begin<uchar>(),it_s_end=planes[1].end<uchar>();MatIterator_<uchar>it_v=planes[2].begin<uchar>();MatIterator_<uchar>it_h=planes[0].begin<uchar>();MatIterator_<uchar>it_skin=Area.begin<uchar>();for(;it_s!=it_s_end;++it_v,++it_s,++it_h,{if(vmix<=*it_v&&*it_v<=vmax&&smix<=*it_s&&*it_ssmax&&hmix<=*it_h&&*it_h<=*it_skin=255;*it_skin=}(“斑点”噪声dilate(Area,Area,Mat(5,5,CV_8UC1),Point(-1,-erode(Area,Area,Mat(5,5,CV_8UC1),Point(-1,-}voidmousecontral(CvBox2Dbox,double{{} %d\n",thet,timeremin);POINTmax;if(s>0.4*sarea||(timeremin>0)){{{{}}elseif(thet>(-70)&&thet<(-20))//{}}else{{{}{}}{{mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0}{mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0mouse_ev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度毛竹产业扶贫项目承包合同3篇
- 2025版教育信息化项目实施及合作保密协议3篇
- 二零二五年度园林绿化养护与节水技术应用合同3篇
- 2025版学校门卫服务及校园安全防范协议2篇
- 2025年度新型城镇化项目卖方信贷贷款合同
- 二零二五版毛竹砍伐与生态旅游项目投资合作协议2篇
- 2025年度数据中心外接线用电环保责任合同
- 二零二五年度GRC构件定制化设计与施工服务合同3篇
- 二零二五年度公司自愿离婚协议书编制指南
- 个人借款抵押车全面合同(2024版)2篇
- 2025届高考语文复习:散文的结构与行文思路 课件
- 电网调度基本知识课件
- 拉萨市2025届高三第一次联考(一模)语文试卷(含答案解析)
- 《保密法》培训课件
- 回收二手机免责协议书模板
- (正式版)JC∕T 60023-2024 石膏条板应用技术规程
- (权变)领导行为理论
- 2024届上海市浦东新区高三二模英语卷
- 2024年智慧工地相关知识考试试题及答案
- GB/T 8005.2-2011铝及铝合金术语第2部分:化学分析
- 不动产登记实务培训教程课件
评论
0/150
提交评论