Updated sample using new cmd parser
authoritsyplen <no@email>
Wed, 10 Aug 2011 11:29:32 +0000 (11:29 +0000)
committeritsyplen <no@email>
Wed, 10 Aug 2011 11:29:32 +0000 (11:29 +0000)
samples/cpp/connected_components.cpp

index 01bff9c..08f7b0c 100644 (file)
@@ -8,19 +8,6 @@ using namespace std;
 Mat img;
 int threshval = 100;
 
-void help()
-{
-       cout <<
-                  "\n This program demonstrates connected components and use of the trackbar\n"
-               << "\n"
-               << "Usage: ./connected_components <image>\n"
-               << "\n"
-               << "The image is converted to grayscale and displayed, another image has a trackbar\n"
-               << "that controls thresholding and thereby the extracted contours which are drawn in color\n"
-               << endl;
-}
-
-
 void on_trackbar(int, void*)
 {
        Mat bw = threshval < 128 ? (img < threshval) : (img > threshval);
@@ -47,18 +34,34 @@ void on_trackbar(int, void*)
        imshow( "Connected Components", dst );
 }
 
-int main( int argc, char** argv )
+void help()
+{
+       printf("\n This program demonstrates connected components and use of the trackbar\n"
+                        "Usage: \n"
+                        "      ./connected_components <image(stuff.jpg as default)>\n"
+                        "The image is converted to grayscale and displayed, another image has a trackbar\n"
+                        "that controls thresholding and thereby the extracted contours which are drawn in color\n");
+}
+
+const char* keys = 
 {
-    // the first command line parameter
-       if(argc != 2)
+       "{1| |stuff.jpg|image for converting to a grayscale}"
+};
+
+int main( int argc, const char** argv )
+{
+       help();
+       CommandLineParser parser(argc, argv, keys);
+       string inputImage = parser.get<string>("1");
+       img = imread(inputImage.c_str(), 0);
+
+       if(img.empty())
        {
-               help();
+               printf("Could not read input image file: %s\n", inputImage.c_str());
                return -1;
        }
-    if( !(img=imread(argc == 2 ? argv[1] : "stuff.jpg", 0)).data) //The ending 0 in imread converts the image to grayscale.
-        return -1;
 
-    namedWindow( "Image", 1 );
+       namedWindow( "Image", 1 );
     imshow( "Image", img );
 
        namedWindow( "Connected Components", 1 );