>>>
>>> OPENCV 1.0 RC1 版本的安装与编译错误修正
>>>
下载安装 OPENCV 1.0 RC1 版本,直接安装。用 VC6.0 打开,编译程序,出现如下三个错误:
//
...
cvbgfg_acmmm2003.cpp
D:/opencv5/cvaux/src/cvbgfg_acmmm2003.cpp(411) : error C2039: 'foreground_regions' : is not a member of 'CvFGDStatModel'
../include/cvaux.h(1240) : see declaration of 'CvFGDStatModel'
D:/opencv5/cvaux/src/cvbgfg_acmmm2003.cpp(416) : error C2039: 'foreground_regions' : is not a member of 'CvFGDStatModel'
../include/cvaux.h(1240) : see declaration of 'CvFGDStatModel'
cvbgfg_common.cpp
cvbgfg_gaussmix.cpp
D:/opencv5/cvaux/src/cvbgfg_gaussmix.cpp(343) : error C2039: 'foreground_regions' : is not a member of 'CvGaussBGModel'
../include/cvaux.h(1300) : see declaration of 'CvGaussBGModel'
...
//
调试代码,发现错误所在,用下面方法修补之。再次编译,全部正常。
找到文件 ../cvaux/inculde/cvaux.h,查找如下语句:
//
#define CV_BG_STAT_MODEL_FIELDS() /
int type; /*type of BG model*/ /
CvReleaseBGStatModel release; /
CvUpdateBGStatModel update; /
IplImage* background; /*8UC3 reference background image*/ /
IplImage* foreground; /*8UC1 foreground image*/ /
IplImage** layers; /*8UC3 reference background image, can be null */ /
int layer_count; /* can be zero */ /
CvMemStorage* storage; /*storage for 揻oreground_regions? / /
CvSeq* foreground_regions /*foreground object contours*/
//
更改为:
//
#define CV_BG_STAT_MODEL_FIELDS() /
int type; /*type of BG model*/ /
CvReleaseBGStatModel release; /
CvUpdateBGStatModel update; /
IplImage* background; /*8UC3 reference background image*/ /
IplImage* foreground; /*8UC1 foreground image*/ /
IplImage** layers; /*8UC3 reference background image, can be null */ /
int layer_count; /* can be zero */ /
CvMemStorage* storage; /*storage for 揻oreground_regions? */ /
CvSeq* foreground_regions /*foreground object contours*/
//