



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. /*2. *3. *基于openCV的背景剪除方法,高斯模型4. */5. #include 6. 7. #include 8. #include 9. #include 10. #include 11. 12. intmain(intargc,char*argv)13. 14. 15. 16. #if0/作测试用,当不需要手动修改输入文件名时,可以将1改为0 17. argc=2;18. argv0=3.exe;/生成的可执行文件名,必须有! 19. argv1=capfile3.avi;20. #endif 21. 22. 23. /声明IplImage指针 24. IplImage*tmp_frame=NULL;25. 26. CvMemStorage*m_storage=cvCreateMemStorage(0);27. CvSeq*m_contour=NULL;28. IplImage*dst=0;29. 30. CvCapture*m_capture=NULL;31. 32. if(argc2)33. 34. fprintf(stderr,Usage:bkgrdvideo_file_namen);35. return-1;36. 37. 38. /打开摄像头 39. if(argc=1)40. 41. if(!(m_capture=cvCaptureFromCAM(-1)42. 43. fprintf(stderr,Cannotopencamera.n);44. return-2;45. 46. 47. 48. /打开视频文件 49. if(argc=2)50. 51. if(!(m_capture=cvCaptureFromFile(argv1)52. 53. fprintf(stderr,Cannotopenvideofile%sn,argv1);54. return-2;55. 56. 57. 58. 59. tmp_frame=cvQueryFrame(m_capture);60. 61. 62. dst=cvCreateImage(cvGetSize(tmp_frame),8,1);63. dst-origin=1;64. 65. cvCvtColor(tmp_frame,dst,CV_BGR2GRAY);66. /cvCvtColor(pFrame,pFrImg,CV_BGR2GRAY); 67. 68. if(!tmp_frame)69. 70. fprintf(stderr,读取视频文件失败,请重新打开真彩色(24位)视频!.n);71. /MessageBox(读取视频文件失败,请重新打开真彩色(24位)视频!,错误信息); 72. return-1;73. 74. 75. cvNamedWindow(video,1);76. cvNamedWindow(背景图像,1);77. cvNamedWindow(前景图像,1);78. 79. cvMoveWindow(video,30,0);80. cvMoveWindow(背景图像,360,0);81. cvMoveWindow(前景图像,690,0);82. 83. 84. /* 85. IplImage*dst1=NULL;86. dst1=cvCreateImage(cvGetSize(tmp_frame),IPL_DEPTH_8U,1);87. dst1-origin=1;88. cvCvtColor(tmp_frame,dst1,CV_BGR2GRAY);89. 90. 91. /创建多高斯模型 92. CvGaussBGStatModelParamsparams;93. params.win_size=200;/1/alpha/影响背景 94. params.bg_threshold=0.90;/CV_BGFG_MOG_BACKGROUND_THRESHOLD;/前B个权重w的和/大点好 95. params.std_threshold=4.0;/CV_BGFG_MOG_STD_THRESHOLD;/sigma 96. params.weight_init=0.005;/CV_BGFG_MOG_WEIGHT_INIT;/初始权重w 97. params.variance_init=15*15;/CV_BGFG_MOG_SIGMA_INIT*CV_BGFG_MOG_SIGMA_INIT;/方差 98. params.minArea=30;/CV_BGFG_MOG_MINAREA 99. params.n_gauss=5;/CV_BGFG_MOG_NGAUSSIANS;/高斯模型数量 100. 101. CvBGStatModel*bg_model=cvCreateGaussianBGModel(dst1,ms);102. 103. 104. 105. 106. for(intfr=1;tmp_frame;tmp_frame=cvQueryFrame(m_capture),fr+)107. 108. /printf(frame#%d:,fr); 109. /获得背景模型更新过程所花费的时间,以CPU时钟/每微秒为单位计数 110. /doublet=(double)cvGetTickCount();/模型更新之前 111. 112. 113. /* 114. cvCvtColor(tmp_frame,dst1,CV_BGR2GRAY);115. 116. cvUpdateBGStatModel(dst1,bg_model);117. /真正的函数实现体是在:icvUpdateFGDStatModel(tmp_frame,bg_model) 118. 119. /t=(double)cvGetTickCount()-t;/模型更新之后 120. 121. /以左下角为坐标原点 122. bg_model-foreground-origin=bg_model-background-origin=1;123. 124. /cvErode(bg_model-background,bg_model-background,0,1); 125. cvErode(bg_model-foreground,bg_model-foreground,0,1);126. /滤除噪声 127. cvDilate(bg_model-foreground,bg_model-foreground,0,1);128. /cvDilate(bg_model-background,bg_model-background,0,1); 129. /滤除噪声 130. 131. /printf(%.1f毫秒n,t/(cvGetTickFrequency()*1000.); 132. /最后输出结果以毫秒为单位 133. 134. cvShowImage(video,tmp_frame);135. cvShowImage(背景图像,bg_model-background);136. cvCopy(bg_model-foreground,dst);137. cvSmooth(dst,dst,CV_GAUSSIAN,5);138. cvMorphologyEx(dst,dst,0,0,CV_MOP_CLOSE,3);139. cvMorphologyEx(dst,dst,0,0,CV_MOP_OPEN,1);140. 141. /提取轮廓到contour序列中 142. 143. /cvFindContours仅能处理单通道、颜色深度为8位的图像的轮廓提取 144. cvFindContours(dst,m_storage,&m_contour,sizeof(CvContour),145. CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0);146. 147. for(;m_contour!=0;m_contour=m_contour-h_next)148. 149. CvScalarcolor=CV_RGB(255,0,255);150. CvScalarcolor_rect=CV_RGB(0,255,255);151. 152. CvRectm_contour_rect=cvBoundingRect(m_contour,1);153. 154. 155. if(fabs(cvContourArea(m_contour)400.0)156. 157. cvRectangle(dst,cvPoint(m_contour_rect.x,m_contour_rect.y),158. cvPoint(m_contour_rect.x+m_contour_rect.width),(m_contour_rect.y+m_contour_rect.height),159. color_rect,2,8,0);160. 161. /*replaceCV_FILLEDwith1toseetheoutlines*/162. cvDrawContours(dst,m_contour,color,color,-1,CV_FILLED,8,cvPoint(0,0);163. cvShowImage(前景图像,dst);164. 165. 166. 167. intk=cvWaitKey(10);/等待10毫秒 168. if(k=q)break;169. 170. 171. c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 21109:2025 EN Nicotine pouches - Test method for pH
- 【正版授权】 IEC 62841-4-3:2020+AMD1:2025 CSV EN Electric motor-operated hand-held tools,transportable tools and lawn and garden machinery - Safety - Part 4-3: Particular requirements f
- 【正版授权】 IEC/IEEE 65700-19-03:2025 RLV EN Bushings for DC application
- 【正版授权】 IEC 62053-22:2003 EN-D Electricity metering equipment (a.c.) - Particular Requirements - Part 22: Static meters for active energy (classes 0,2 S and 0,5 S)
- 校外消防知识培训课件
- 校园防踩踏安全知识培训课件
- java文件读写面试题及答案
- 北京财务知识培训行情课件
- 安徽速写考试题及答案
- 国家保密考试题及答案
- 马凳筋专项方案
- 厂房临时用电施工方案
- 模块化建筑快速搭建系统行业跨境出海战略研究报告
- 气管切开非机械通气患者气道护理团体标准课件
- 2025年度船舶建造项目总承包合同4篇
- 红色国潮风大学生讲思政课模板
- 麻醉科规范化管理
- 电梯自行检查制度
- 2024年度氧化铝粉购销合同
- 电玩城游戏机维修培训
- 短视频平台短视频营销解决方案
评论
0/150
提交评论