数字图像处理课程设计_第1页
数字图像处理课程设计_第2页
数字图像处理课程设计_第3页
数字图像处理课程设计_第4页
数字图像处理课程设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

问题引 问题提 现状与意 达到目 作业内 设计思 关键原 CamShift算 编程实 开发环 开发平 OpenCV介 设计思 采用线程技 目标选 目标识 鼠标定 鼠标操作分 程序控 程序流程 3.3.1主函数流程 Cam-Shift检测流程 关键功能代 变量定 线程函 设置ROI函 鼠标回调函 鼠标控制函 4、实验与测 程序使 运行程 物 控制鼠 实验内 结果分 5、总 参考资 问题引问题提现状与意达到目作业内设计思选 目选 目 运行程单单帧 置检在像动体测中景法图帧差法疑应用广泛的方法,但考虑到图像中运动的不光是物体,还有持有物体的手和,参与者个人也会发生肢体移动,所以本文不采用这两种方法。基于本文题目的特殊性和算法优良性的综合考虑,本次研究采用关键原CamShift算法,即"ContinuouslyApativeMean-Shift"算法,是一种运动中,只有HSI空间(或者HSV颜色空间)中的H分量可以表示颜色信息,本文采HSV颜色空间。在具体的计算过程中,首先将其他的色彩空间的值转化到HSV空间,然后对其中的H分量做一维直方图计算。称作反向投影(BackProjection。Mean-Shift算Mean-Shift算法是一种在一组数据的密度分布中寻找局部极值的稳定的方续分布用Mean-Shift核进行卷积,然后再应用爬山算法。Mean-Shift算法忽略了数据中的outliers,即忽略远离数据峰值的点。Mean-Shift算法仅对数据局部窗口中的点进行处理,处理完成后再移动窗口Mean-Shift算法的步骤如下CamShift算称是"ContinuouslyApaptiveMean-SHIFT",它的基本思想是图像的所有帧作MeanShift运算,并将上一帧的结果(即搜索窗口的中心和大小)作为下一帧以可以预期,CamShift算法对于本研究应当十分有效。编程实开发环考虑到实验测试时需要多种参数设置和交互控制,所以本次作业采用VC6.0+MFC进行界面开发。同时,为了省去不必要的重复性工作,以提高程序效率,我们采用OpenCV库直接开发。OpenCV介OpenCVIn公司支持的开源计算机视觉库。它轻量级而且高效——由CC++类构成,实现了图像处理和计算机视觉方面的很多通研究代码(慢,不稳定,独立并与其他库不兼容 +OpenCV使用类BSDlisence,所以对非商业应用和商业应用都是免费(FREE)的。OpenCV为InIntegratedPerformancePrimitives(IPP)提供了透明接口。味着如果有为特定处理器优化的的IPP库,OpenCV将在运行时自设计思个连通区域的都会被认为是目标。RGB空间,而采用HSV颜色控件。H代表色调,这一个值就是CamShift算法分析与的目标值。S代表饱和度,VHSV空间的优势就显而易见了,因为在环境光线下,物体的H值不会变,变的只是S和V值。原则上讲,H值,SV值取任意可去的值都可以。这需要一个前提,就是256之间,V10256SVA、计出屏/窗比基上续增比,大一合(如果仍不能满足实际需要,程序界面提供用户输入此值的编辑框。B(或称补偿量屏幕左上方,这样鼠标就可能达到不了屏幕的左侧和上方边界。增加一个负矢量,使得鼠标位置在屏幕坐标原点与此矢量做和运算之后的点算起这样,屏幕的所有部分在一定的倍率和偏移量联合运算之后都会被覆盖。体,物体A用来确定鼠标的移动轨迹,物体B的某些特征(如反转,大小变化,-50<angle<-20:左键弹起事件-20<angle<20:无A、开始程序:点击“开始”按钮鼠标;进行重选目标操作时也会自动释放鼠标;F、重置参数/程序:点击“重置参G、退出程序:连续两次按下“ESC”键,或点击“退 程序流程线线程开是否已选目是否显示该帧图显示该帧处理线程结程序控制部释放内存,销CamShift算法显示/隐藏色彩空间转换为抓取一帧,保开始循取得屏鼠标回调函创 窗打 Cam-Shift检测流程判判断是否响应鼠弹起事是否是控制鼠是否判断体结束界面上显示圆设置新的界面上显示圆绘画标志椭圆CamShift算法检测物计算反向投H,S,V取值范围过关键功能代 p;//Cam-Shift算法搜索窗口数据结CvRecttrack_window;//Cam-Shift算法搜索窗口CvRectselection;//选择的目标区域数据结构intbackproject_mode=0;intselect_object=0;inttrack_object=0;CvPointorigin;intfloat*hranges=hranges_arr;intvmin=10,vmax=256,smin=30;//S,V值的范线程函本函数是程序实现物体和其他函数调用的主体函数,是线程的执行函数。代码如下:CvCapture*capture=0;if(!capture){MessageBox("捕获设备打开失败}cvNamedWindow("物体程序//鼠标回调响应事cvSetMouseCallback("物体程序//创建滑动条cvCreateTrackbar("亮度min:","物体程序",&vmin,256,0);cvCreateTrackbar("亮度max:","物体程序",&vmax,256,0);cvCreateTrackbar("纯度min:","物体程序",&smin,256,0);intkey;//while{if(!frame)if{}//把图像拷贝到image数//转换为HSV颜色空间if(track_object){int

cvSplit(hsv,hue,0,0,0);//if{}//运用camshift算法,找到需要的物体,物置保存在track_box if(!image->origin)track_box.angle=-if{doubledeg4=atof(str);doubledeg6=atof(str1);if(deg6>0&&{//调用控制鼠标函}{}}}//鼠标选择ROI过程中,标识已选择区域if{}//cvShowImage("物体程序if(isShowHist){if{}cvShowImage("目标区域颜色直方图}{if{}}//以下是控制部key=cvWaitKey(20);//等待20ms,按if(key=='h'){if{m_showHist.SetWindowText("隐藏颜色直方图}{m_showHist.SetWindowText("显示颜色直方图}}//重新选取目 (isRestart||(char)key==13||key=='r')//点击“重选”按钮或者按回车{}{if{if{}}{}}//只关闭窗if((char)key==27||key=='q')//按“ESC”键或者按“Q”{isCursor=false;//关闭窗口后也停止}if(isExit){}}cvDestroyWindow("物体程序");//重置程序状float//创建该ROI的颜色直方for(inti=0;i<hdims;i++){CvScalarcolor=hsv2rgb(i*180f/hdims);cvRectangle(histimg,cvPoint(i*bin_w,histimg->height),cvPoint((i+1)*bin_w,histimg--val),color,-}//如果image还没分配内存空间,则返if{}if(image->origin==1){y=image->height-}if(select_object==1){}if{{casecaseif{track_object=-}}}intCurX,CurY;doublexscale,yscale;double//取得鼠标夹角参//计算出鼠标坐标,并继续放大一定的倍率,使得鼠标可以到达屏幕任意位置ififif(CurX>ScreenWidth)if(CurY>ScreenHeight)((track_box.angle<deg4&&track_box.angle>deg6)&&abs(ClickCount-{m_curoper.SetWindowText("左键单击}//发鼠标 ((track_box.angle>-deg4&&track_box.angle<-deg6)&&abs(ClickCount-{}//发鼠标 ((track_box.angle<-deg4||track_box.angle>deg4)&&abs(ClickCount-{}

m_curoper.SetWindowText("左键按下m_curoper.SetWindowText("无4、实验与测鼠标灵敏度设置:设置鼠标灵敏度,两个方向的数值越大,则鼠标月灵敏是鼠标在屏幕移动距离与实际目标物体移动距离之比。A、开始程序:点击“开始”按钮释放鼠标;进行重选目标操作时也会自动释放鼠标;F、重置参数/程序:点击“重置参G、退出程序:连续两次按下“ESC”键,或点击“退Windows当前运行程序焦点在本程序或者本程序弹出的视点击“开始”按钮,出现窗口,如下 形即可,随即程序获取目标物体颜色并识别物体,识别出物体后打出标识椭圆如下:Windows自带游实验具体内容,请参照实验Camshift算法是稳健和精确的,本程5、总够将物体识别并实现,算法执行效率较高。A、Camshift算法实际上主要基于颜色模型,这就要求背景中不能有与目标BHSV模型,就是为了消除实验环境光线明暗的影响,但在某些情况

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论