- 締切済み
Wisual Windows for BC++ で OpenCVのサンプルコードのコンパイル
http://opencv.jp/sample/contour_processing.html にあるサンプルコードをコンパイルしたところ 警告 W8057 \OpenCV\cv\include\cvcompat.h 391: パラメータ 'bound_rect' は一度も使用されない(関数 cvConvexHull ) 警告 W8019 \OpenCV\cv\include\cvcompat.h 425: コードは効果を持たない(関数 cvMinAreaRect ) 同じような警告が多数と エラー E2193 \opencvtest1.c 28: 呼び出し時のパラメータが足りない:cvCircle(関数 main ) エラー E2193 \opencvtest1.c 34: 呼び出し時のパラメータが足りない:cvRectangle(関数 main ) *** 2 errors in Compile *** というエラーが2つ出て、先に進みません。 ちなみに28行目のソースリストは cvCircle (img, pt, 3, CV_RGB (0, 255, 0), CV_FILLED); 34行目は cvPoint (rect.x + rect.width, rect.y + rect.height), CV_RGB (255, 0, 0), 2); で、サンプルプログラムそのままで、何もいじっていません。 なお、インクルードファイルのパスとライブラリファイルのパスは設定してあります。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
OpenCVはよく知りませんが、 OpenCV: Image Processing and Analysis Reference http://robotics.elec.nara-k.ac.jp/opencv/ref/OpenCVRef_ImageProcessing.htm にあるプロトタイプを見た感じ void cvRectangle( CvArr* img, CvPoint pt1, CvPoint pt2, double color, int thickness=1 ); void cvCircle( CvArr* img, CvPoint center, int radius, double color, int thickness=1 ); C++ 前提のような気がするんですがどうなんでしょうか? > エラー E2193 \opencvtest1.c 28: 呼び出し時のパラメータが足りない:cvCircle(関数 main ) > エラー E2193 \opencvtest1.c 34: 呼び出し時のパラメータが足りない:cvRectangle(関数 main ) これは C でコンパイルしてますよね?
お礼
回答ありがとうございます。 おっしゃるとおり、Cでコンパイルしていました。 おかげさまでで、C++でコンパイルしたところ、コンパイルはとおりました。 しかし今度は、 コンソール型でプロジェクトを作成すると、 Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_cvCreateMemStorage' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvCreateImage' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvSetZero' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvCreateSeq' が未解決(\DEBUG\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvSeqPush' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvCircle' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvBoundingRect' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvRectangle' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvNamedWindow' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvShowImage' が未解決(\OPENCVTEST1.OBJ が参照) Error: 外部シンボル '_cvWaitKey' が未解決(\OPENCVTEST1.OBJ が参照) ウインドウズ型でプロジェクトを作成すると、 Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル 'WinMain' が未解決(\BCC55S\LIB\C0W32.OBJ が参照) ==>該当する実行型ではないかもしれません。必要ならエラーの行で右クリックし、[実行型の再設定]できます。 のように、どちらでもエラーになって先に進みません。
補足
おかげさまで、別の質問で解決しました。 http://oshiete1.goo.ne.jp/qa3636742.html 結論から言うと、 bcc32 -WC -6 -Od -w- -AT -pc -H- -k -b -v -y -eDebug\proj2.exe Debug\opencv1.obj D:\OpenCV\lib\cv.lib D:\OpenCV\lib\cxcore.lib D:\OpenCV\lib\highgui.lib のように、コマンドラインでは使用ライブラリを直接指定すればよいことがわかり、そのためには、visual windows for BC++の[プロジェクト]-[設定]-[リンク]-[オブジェクト・ライブラリ指定]にコマンドラインで指定した3つのライブラリ D:\OpenCV\lib\cv.lib D:\OpenCV\lib\cxcore.lib D:\OpenCV\lib\highgui.lib を指定すればOKでした。