OpenCV pre1.1を以下の手順でビルドし直す。
環境:
- OS: Windows XP
- IDE: Microsoft Visual C++ 2008 Express Edition
1. OpenCVフォルダ下の"_umake\opencv.vs2005.no_openmp.sln"を開く。(Express EditionではOpenMPは使用できなかったはず)
2. プロジェクトファイルのVCバージョンの変換を行う。
3. Releaseにしてソリューションをビルドする
4. cvauxでこんなエラーが出る。
1>cvbgfg_gaussmix.cpp 1>.\cvbgfg_gaussmix.cpp(348) : error C2039: 'foreground_regions' : 'CvGaussBGModel' のメンバではありません。 1> c:\Program Files\OpenCV\cvaux\include\cvaux.h(1365) : 'CvGaussBGModel' の宣言を確認してください。 1>cvbgfg_acmmm2003.cpp 1>.\cvbgfg_acmmm2003.cpp(464) : error C2039: 'foreground_regions' : 'CvFGDStatModel' のメンバではありません。 1> c:\Program Files\OpenCV\cvaux\include\cvaux.h(1301) : 'CvFGDStatModel' の宣言を確認してください。 1>.\cvbgfg_acmmm2003.cpp(470) : error C2039: 'foreground_regions' : 'CvFGDStatModel' のメンバではありません。 1> c:\Program Files\OpenCV\cvaux\include\cvaux.h(1301) : 'CvFGDStatModel' の宣言を確認してください。
5. cvaux.hの1167行でコメントアウト部分が文字化けしているのが原因なので、そこを修正する
CvMemStorage* storage; /*storage for 吐oreground_regions・/ <--ここ CvSeq* foreground_regions /*foreground object contours*/ <--この行がコメントアウトされてしまう
CvMemStorage* storage; /*storage for foreground_regions*/<--こう直す CvSeq* foreground_regions /*foreground object contours*/