2013年12月13日金曜日

OpenCVのopencv_traincascadeの辞書属性を調べる

CascadeClassifierで辞書を読み込んだ場合、辞書の属性を取得するためのメソッドを調べてみたが、getFeatureTypeとgetOriginalWindowSizeしか提供されていない

また、getFeatureTypeの戻り値がintなので、変換が必要となる
 (システム定数として HAAR 0 LBP 1 HOG 2とcv::FeatureEvaluatorに定義いる)

他の属性は、辞書のXMLファイルを読み込み、自分で解析するしかない。
以下のコードで、
  • featureType
  • stageNum
  • boostType
を得ることができる

 cv::FileStorage fs(filename, CV_STORAGE_READ);
 cv::FileNode topnode(fs.fs, NULL);

 cv::FileNode cnode = topnode[std::string("cascade")];
 cv::FileNode cn1 = cnode[std::string("featureType")];
 std::cout << "FeatureType : " << (std::string)cn1 << std::endl;

 cv::FileNode cn2 = cnode[std::string("stageNum")];
 std::cout << "Stage Number : " << (int)cn2 << std::endl;

 cv::FileNode cnode2 = cnode[std::string("stageParams")];
 cv::FileNode cn3 = cnode2[std::string("boostType")];
 std::cout << "boostType : " << (std::string)cn3 << std::endl;


以上

0 件のコメント:

コメントを投稿