资源描述:
《opencv的高斯背景提取》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、1./* 2.* 3.*基于openCV的背景剪除方法,高斯模型 4.*/ 5.#include 6. 7.#include 8.#include 9.#include 10.#include 11. 12.int main( int argc, char** argv ) 13.{ 14. 15. 16.#if 0 //作测试用,当不需要手动修改
2、输入文件名时,可以将 1 改为 0 17. argc = 2; 18. argv[0] = "3.exe"; //生成的可执行文件名,必须有! 19. argv[1] = "capfile3.avi"; 20.#endif 21. 22. 23. //声明IplImage指针 24. IplImage* tmp_frame = NULL; 25. 26. CvMemStorage * m_storage = cv
3、CreateMemStorage(0); 27. CvSeq *m_contour = NULL; 28. IplImage* dst = 0; 29. 30. CvCapture* m_capture = NULL; 31. 32. if( argc > 2 ) 33. { 34. fprintf(stderr, "Usage: bkgrd [video_file_name]"); 35. return -1
4、; 36. } 37. 38. //打开摄像头 39. if (argc ==1) 40. { 41. if( !(m_capture = cvCaptureFromCAM(-1))) 42. { 43. fprintf(stderr, "Can not open camera."); 44. return -2; 45. } 46. } 47
5、. 48. //打开视频文件 49. if(argc == 2) 50. { 51. if( !(m_capture = cvCaptureFromFile(argv[1]))) 52. { 53. fprintf(stderr, "Can not open video file %s", argv[1]); 54. return -2; 55. } 56. }
6、 57. 58. 59. tmp_frame = cvQueryFrame(m_capture); 60. 1. 2. dst = cvCreateImage(cvGetSize(tmp_frame), 8, 1); 3. dst->origin = 1; 4. 5. cvCvtColor(tmp_frame, dst, CV_BGR2GRAY); 6. // cvCvtColor(pFrame, pFrImg, CV_BGR
7、2GRAY); 7. 8. if(!tmp_frame) 9. { 10. fprintf(stderr, "读取视频文件失败,请重新打开真彩色(24位)视频!."); 11. //MessageBox("读取视频文件失败,请重新打开真彩色(24位)视频!", "错误信息"); 12. return -1; 13. } 14. 15. cvNamedWindow("video", 1); 16.
8、 cvNamedWindow("背景图像", 1); 17. cvNamedWindow("前景图像", 1); 18. 19. cvMoveWindow("video", 30, 0); 20. cvMoveWindow("背景图像", 360, 0); 21. cvMoveWindow(