由于Opencv2.4.9下的sample blobtrack 不是在vs2013下进行编程的,故在编程时会有一些不兼容的问题:
1 fopen 还是fopen_s的问题
log=fopen(log_name, "at");
需要改为fopen_s(&log,log_name,"at");
2 sprintf 直接改为sprintf_s
3在调试时,程序直接闪退,原因在于需要进入CMD进行调试
为了方便,不需要每次进入CMD,我的调试方法是
在main函数里增加信息
例如
在cvInitSystem(argc, argv);这一行前输入:
argc = 2;
argv[1] = "d:\1.avi";
至此程序基本就能跑起来了
4 如果还想修改其他参数,那么可以参照下方法:
avi_name = "1.avi";
fgavi_name = "fg.avi";
btavi_name = "bt.avi";
.....
并且把下列部分删除,此部分的作用就是为变量赋值,我们调试时,直接对变量赋值就可以了
{ /* Parse arguments. */
。。。。。。。。
} /* Parse arguments. */
5blobtrack文件的瘦身
首先include文件
#include "opencv2/video/background_segm.hpp" 貌似没有用,直接注释掉
//#include "opencv2/legacy/legacy.hpp" 貌似也没啥用,只是引用了个define,直接注释掉
并在其下加上
#define CV_BG_MODEL_FGD 0
#define CV_BG_MODEL_MOG 1 /* "Mixture of Gaussians". */
#define CV_BG_MODEL_FGD_SIMPLE 2
把程序再跑一下试试,么么哒