引用: ??
http://www.cnblogs.com/oskycar/archive/2009/08/30/1556920.html
VS2013?
在debug模式下編譯cvaux時會提示三個錯誤:
error C2039:?
'foreground_regions'
?: is not a member of?
'CvFGDStatModel'
error C2039: 'foreground_regions' : is not a member of? 'CvFGDStatModel'
error C2039: 'foreground_regions' : is not a member of? 'CvGaussBGModel'
error C2039: 'foreground_regions' : is not a member of? 'CvFGDStatModel'
error C2039: 'foreground_regions' : is not a member of? 'CvGaussBGModel'
在網上搜到的解決方法都是這樣寫的:
在cvaux.h文件中,
搜索關鍵字foreground_regions,
CvMemStorage* storage; /*storage for 揻oreground_regions ?/ ?\
CvSeq* foreground_regions /*foreground object contours*/
改為如下形式:
CvMemStorage* storage; /*storage for foreground_regions */ ?\
CvSeq* foreground_regions /*foreground object contours*/
CvMemStorage* storage; /*storage for 揻oreground_regions ?/ ?\
CvSeq* foreground_regions /*foreground object contours*/
改為如下形式:
CvMemStorage* storage; /*storage for foreground_regions */ ?\
CvSeq* foreground_regions /*foreground object contours*/
具體原因解釋如下:首先foreground_regions 定義在這個宏里面:
#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*/
??? 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*/
“\”在這里代表續行的意思。并且注意前面定義的變量后面都有“;”號,而foreground_regions沒有,因為它是這個定義的最后一項,因為宏定義末尾是不加‘;’號的。
另外要注意的是,千萬不要在修改最后兩行時寫成這個樣子:???
?CvMemStorage*?? storage;????? /*storage for 揻oreground_regions?*/????????????? \
??? CvSeq*????????? foreground_regions /*foreground object contours*/
即不能放入空行,因為這樣一來foreground_regions就不屬于宏定義中的一份了。而
'CvFGDStatModel'
和
'CvGaussBGModel'
中均包含了改宏,所以錯誤會照舊的。偶剛開始就犯了這個錯誤,還以為是各位高手犯錯誤了呢。呵呵
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
