From: Kirill Kornyakov Date: Fri, 3 Jun 2011 16:41:41 +0000 (+0000) Subject: The samples were updated through CommandLineParser class X-Git-Tag: accepted/2.0/20130307.220821~2914 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=07a9d3558ebe3071d6dc17d5158cb58db789b19a;p=profile%2Fivi%2Fopencv.git The samples were updated through CommandLineParser class --- diff --git a/samples/cpp/bagofwords_classification.cpp b/samples/cpp/bagofwords_classification.cpp index 7203ccc..9e3f334 100644 --- a/samples/cpp/bagofwords_classification.cpp +++ b/samples/cpp/bagofwords_classification.cpp @@ -1,3 +1,4 @@ +#include "opencv2/core/core.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/features2d/features2d.hpp" @@ -27,29 +28,26 @@ const string bowImageDescriptorsDir = "/bowImageDescriptors"; const string svmsDir = "/svms"; const string plotsDir = "/plots"; -void help(char** argv) -{ - cout << "\nThis program shows how to read in, train on and produce test results for the PASCAL VOC (Visual Object Challenge) data. \n" - << "It shows how to use detectors, descriptors and recognition methods \n" - "Using OpenCV version %s\n" << CV_VERSION << "\n" - << "Call: \n" - << "Format:\n ./" << argv[0] << " [VOC path] [result directory] \n" - << " or: \n" - << " ./" << argv[0] << " [VOC path] [result directory] [feature detector] [descriptor extractor] [descriptor matcher] \n" - << "\n" - << "Input parameters: \n" - << "[VOC path] Path to Pascal VOC data (e.g. /home/my/VOCdevkit/VOC2010). Note: VOC2007-VOC2010 are supported. \n" - << "[result directory] Path to result diractory. Following folders will be created in [result directory]: \n" - << " bowImageDescriptors - to store image descriptors, \n" - << " svms - to store trained svms, \n" - << " plots - to store files for plots creating. \n" - << "[feature detector] Feature detector name (e.g. SURF, FAST...) - see createFeatureDetector() function in detectors.cpp \n" - << " Currently 12/2010, this is FAST, STAR, SIFT, SURF, MSER, GFTT, HARRIS \n" - << "[descriptor extractor] Descriptor extractor name (e.g. SURF, SIFT) - see createDescriptorExtractor() function in descriptors.cpp \n" - << " Currently 12/2010, this is SURF, OpponentSIFT, SIFT, OpponentSURF, BRIEF \n" - << "[descriptor matcher] Descriptor matcher name (e.g. BruteForce) - see createDescriptorMatcher() function in matchers.cpp \n" - << " Currently 12/2010, this is BruteForce, BruteForce-L1, FlannBased, BruteForce-Hamming, BruteForce-HammingLUT \n" - << "\n"; +void help() +{ + printf("\nThis program shows how to read in, train on and produce test results for the PASCAL VOC (Visual Object Challenge) data. \n" + "It shows how to use detectors, descriptors and recognition methods \n" + "Usage: \n" + "Format:\n" + "./bagofwords_classification \n" + "--voc_path= \n" + "--result_directory= \n" + "[--descriptor_extractor]= \n" + "[--descriptor_matcher]= \n" + "\n"); } @@ -2507,16 +2505,24 @@ void computeGnuPlotOutput( const string& resPath, const string& objClassName, Vo -int main(int argc, char** argv) +int main(int argc, const char** argv) { - if( argc != 3 && argc != 6 ) + help(); + + CommandLineParser parser(argc, argv); + + const string vocPath = parser.get("--voc_path"); + const string resPath = parser.get("--result_directory"); + const string featureDetectName = parser.get("--feature_detector"); + const string descExtName = parser.get("--descriptor_extractor"); + const string descMatchName = parser.get("--descriptor_matcher"); + + if( vocPath.empty() || resPath.empty()) { - help(argv); + help(); + printf("Cannot find --voc_path=%s or --result_directory=%s\n", vocPath.c_str(), resPath.c_str()); return -1; } - - const string vocPath = argv[1], resPath = argv[2]; - // Read or set default parameters string vocName; DDMParams ddmParams; @@ -2534,12 +2540,12 @@ int main(int argc, char** argv) else { vocName = getVocName(vocPath); - if( argc!= 6 ) + if( featureDetectName.empty() || descExtName.empty() || descMatchName.empty()) { cout << "Feature detector, descriptor extractor, descriptor matcher must be set" << endl; return -1; } - ddmParams = DDMParams( argv[3], argv[4], argv[5] ); // from command line + ddmParams = DDMParams( featureDetectName.c_str(), descExtName.c_str(), descMatchName.c_str()); // from command line // vocabTrainParams and svmTrainParamsExt is set by defaults paramsFS.open( resPath + "/" + paramsFile, FileStorage::WRITE ); if( paramsFS.isOpened() ) diff --git a/samples/cpp/bgfg_segm.cpp b/samples/cpp/bgfg_segm.cpp index c93f44c..1bb3f5d 100644 --- a/samples/cpp/bgfg_segm.cpp +++ b/samples/cpp/bgfg_segm.cpp @@ -1,32 +1,40 @@ +#include "opencv2/core/core.hpp" #include "opencv2/video/background_segm.hpp" #include "opencv2/highgui/highgui.hpp" #include using namespace cv; +using namespace std; void help() { printf("\nDo background segmentation, especially demonstrating the use of cvUpdateBGStatModel().\n" -"Learns the background at the start and then segments.\n" -"Learning is togged by the space key. Will read from file or camera\n" -"Call:\n" -"./ bgfg_segm [file name -- if no name, read from camera]\n\n"); +" Learns the background at the start and then segments.\n" +" Learning is togged by the space key. Will read from file or camera\n" +"Usage: \n" +" ./bgfg_segm [--file_name]=\n\n"); } //this is a sample for foreground detection functions -int main(int argc, char** argv) +int main(int argc, const char** argv) { + help(); + + CommandLineParser parser(argc, argv); + + string fileName = parser.get("file_name", "0"); VideoCapture cap; bool update_bg_model = true; - if( argc < 2 ) + + if(fileName == "0" ) cap.open(0); else - cap.open(argv[1]); - help(); - + cap.open(fileName.c_str()); + if( !cap.isOpened() ) { + help(); printf("can not open camera or video file\n"); return -1; }