2012年9月27日木曜日

OpenCVでコマンドラインの引数を取得する


Visual C++ 2010 Expressでデフォルトのコマンドラインプロジェクトを作成するとメイン関数の引数がUNICODE(設定に依存)となっておりメイン関数での引数の受け取りがややこしくなる。

int _tmain(int argc, _TCHAR* argv[])


そこで、反則的であるが簡単に済ませるのであれば、自分で
int _main(int argc, char* argv[])
に書き換えると処理が簡単になる


ファイル名など文字列の取得
std::string path;

if (argc > 2) {
  path = std::string(argv[2]);

閾値などのintの取得
int th;

if (argc > 2) {
  std::stringstream ss;
  ss << argv[2];
  ss >> offAngle;

と簡単になる。

ただし、上記の例でargv[2]と書いているが、引数の順番は、argv[]のindexと対応するため注意が必要である。

以上

0 件のコメント:

コメントを投稿