2010年10月1日金曜日

OpenCV2.1のめんどくさいヘッダーファイル群

2.1を使っていて不満なのは,cxcore.h cv.hをインクルードしたときに出る警告なのです.
コンパイルするたびに次の警告が表示されると肝心のエラーが下の方にスクロールアウトされてウザくなります.

#pragma message: Warning: "This is a deprecated opencv header provided for compatibility. Please include a header from a corresponding opencv module"

cxcore.hとcv.hは,過去のしがらみのためお情けで用意しているだけ.
さっさと,然るべきヘッダーをインクルードするように改めなさいということらしいです.
じゃあ何をインクルードすべきなのかというと,ドキュメントへの記載が見当たらない.
仕方ないので面倒くさいがcxcore.とcv.hの中身を見て確認した.
cxcore.hの代わりにインクルードすべきヘッダファイル

#include "opencv2/core/core_c.h"
#include "opencv2/core/core.hpp"

cv.hの代わりにインクルードすべきヘッダファイル

#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/video/tracking.hpp"
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/objdetect/objdetect.hpp"

イッパイあって分かりにくくなった感じがします.覚えられないのでしばらくcv.hでワーニングを我慢するかcv.hのワーニング消すかしようかなと思います.