Updating samples using cmd parser

This commit is contained in:
itsyplen 2011-08-10 08:56:27 +00:00
parent 86cd9fadf3
commit 7f32e8131d
2 changed files with 48 additions and 34 deletions

@ -1,7 +1,9 @@
#include "opencv2/core/core.hpp"
#include "opencv2/video/background_segm.hpp" #include "opencv2/video/background_segm.hpp"
#include "opencv2/highgui/highgui.hpp" #include "opencv2/highgui/highgui.hpp"
#include <stdio.h> #include <stdio.h>
using namespace std;
using namespace cv; using namespace cv;
void help() void help()
@ -9,22 +11,33 @@ void help()
printf("\nDo background segmentation, especially demonstrating the use of cvUpdateBGStatModel().\n" printf("\nDo background segmentation, especially demonstrating the use of cvUpdateBGStatModel().\n"
"Learns the background at the start and then segments.\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" "Learning is togged by the space key. Will read from file or camera\n"
"Call:\n" "Usage: \n"
"./ bgfg_segm [file name -- if no name, read from camera]\n\n"); " ./bgfg_segm [--camera]=<use camera, if this key is present>, [--file_name]=<path to movie file> \n\n");
} }
//this is a sample for foreground detection functions const char* keys =
int main(int argc, char** argv)
{ {
"{c |camera |false | use camera or not}"
"{fn|file_name|tree.avi | movie file }"
};
//this is a sample for foreground detection functions
int main(int argc, const char** argv)
{
help();
CommandLineParser parser(argc, argv, keys);
bool useCamera = parser.get<bool>("camera");
string file = parser.get<string>("file_name");
VideoCapture cap; VideoCapture cap;
bool update_bg_model = true; bool update_bg_model = true;
if( argc < 2 ) if( useCamera )
cap.open(0); cap.open(0);
else else
cap.open(argv[1]); cap.open(file.c_str());
help(); parser.printParams();
if( !cap.isOpened() ) if( !cap.isOpened() )
{ {
printf("can not open camera or video file\n"); printf("can not open camera or video file\n");

@ -4,6 +4,7 @@
* Created on: Oct 17, 2010 * Created on: Oct 17, 2010
* Author: ethan * Author: ethan
*/ */
#include "opencv2/core/core.hpp"
#include "opencv2/calib3d/calib3d.hpp" #include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/features2d/features2d.hpp" #include "opencv2/features2d/features2d.hpp"
#include "opencv2/imgproc/imgproc.hpp" #include "opencv2/imgproc/imgproc.hpp"
@ -12,20 +13,7 @@
#include <iostream> #include <iostream>
using namespace cv; using namespace cv;
using namespace std;
using std::cout;
using std::cerr;
using std::endl;
using std::vector;
void help(char **av)
{
cerr << "usage: " << av[0] << " im1.jpg im2.jpg"
<< "\n"
<< "This program shows how to use BRIEF descriptor to match points in features2d\n"
<< "It takes in two images, finds keypoints and matches them displaying matches and final homography warped results\n"
<< endl;
}
//Copy (x,y) location of descriptor matches found from KeyPoint data structures into Point2f vectors //Copy (x,y) location of descriptor matches found from KeyPoint data structures into Point2f vectors
void matches2points(const vector<DMatch>& matches, const vector<KeyPoint>& kpts_train, void matches2points(const vector<DMatch>& matches, const vector<KeyPoint>& kpts_train,
@ -53,25 +41,38 @@ double match(const vector<KeyPoint>& /*kpts_train*/, const vector<KeyPoint>& /*k
return ((double)getTickCount() - t) / getTickFrequency(); return ((double)getTickCount() - t) / getTickFrequency();
} }
void help()
int main(int ac, char ** av)
{ {
if (ac != 3) printf ("This program shows how to use BRIEF descriptor to match points in features2d\n"
{ "It takes in two images, finds keypoints and matches them displaying matches and final homography warped results\n"
help(av); "Usage: \n"
return 1; "image1 image2 \n"
} "Example: \n"
string im1_name, im2_name; "box.png box_in_scene.png \n");
im1_name = av[1]; }
im2_name = av[2];
const char* keys =
{
"{1| |box.png |the first image}"
"{2| |box_in_scene.png|the second image}"
};
int main(int argc, const char ** argv)
{
help();
CommandLineParser parser(argc, argv, keys);
string im1_name = parser.get<string>("1");
string im2_name = parser.get<string>("2");
Mat im1 = imread(im1_name, CV_LOAD_IMAGE_GRAYSCALE); Mat im1 = imread(im1_name, CV_LOAD_IMAGE_GRAYSCALE);
Mat im2 = imread(im2_name, CV_LOAD_IMAGE_GRAYSCALE); Mat im2 = imread(im2_name, CV_LOAD_IMAGE_GRAYSCALE);
if (im1.empty() || im2.empty()) if (im1.empty() || im2.empty())
{ {
cerr << "could not open one of the images..." << endl; printf( "could not open one of the images...\n");
printf("the cmd parameters have next current value: \n");
parser.printParams();
return 1; return 1;
} }