OPENCV 1.0 RC1 版本安装时的编译错误修正

>>>
>>> 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*/
//

你可能感兴趣的:(opencv)