Update Samples
authorSuleyman TURKMEN <sturkmen@hotmail.com>
Sun, 28 Jul 2019 09:09:17 +0000 (12:09 +0300)
committersturkmen72 <sturkmen@hotmail.com>
Wed, 4 Sep 2019 22:10:51 +0000 (01:10 +0300)
72 files changed:
samples/cpp/application_trace.cpp
samples/cpp/demhist.cpp
samples/cpp/dft.cpp
samples/cpp/facedetect.cpp
samples/cpp/falsecolor.cpp
samples/cpp/inpaint.cpp
samples/cpp/peopledetect.cpp
samples/cpp/polar_transforms.cpp
samples/cpp/qrcode.cpp
samples/cpp/smiledetect.cpp
samples/cpp/squares.cpp
samples/cpp/train_HOG.cpp
samples/cpp/tutorial_code/HighGUI/AddingImagesTrackbar.cpp
samples/cpp/tutorial_code/HighGUI/BasicLinearTransformsTrackbar.cpp
samples/cpp/tutorial_code/Histograms_Matching/EqualizeHist_Demo.cpp
samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp
samples/cpp/tutorial_code/Histograms_Matching/calcHist_Demo.cpp
samples/cpp/tutorial_code/ImgProc/BasicLinearTransforms.cpp
samples/cpp/tutorial_code/ImgProc/Morphology_1.cpp
samples/cpp/tutorial_code/ImgProc/Morphology_2.cpp
samples/cpp/tutorial_code/ImgProc/Pyramids/Pyramids.cpp
samples/cpp/tutorial_code/ImgProc/Smoothing/Smoothing.cpp
samples/cpp/tutorial_code/ImgProc/Threshold.cpp
samples/cpp/tutorial_code/ImgProc/Threshold_inRange.cpp
samples/cpp/tutorial_code/ImgProc/changing_contrast_brightness_image/changing_contrast_brightness_image.cpp
samples/cpp/tutorial_code/ImgProc/morph_lines_detection/Morphology_3.cpp
samples/cpp/tutorial_code/ImgTrans/CannyDetector_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/Geometric_Transforms_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/HoughCircle_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/HoughLines_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/Laplace_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/Remap_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/Sobel_Demo.cpp
samples/cpp/tutorial_code/ImgTrans/copyMakeBorder_demo.cpp
samples/cpp/tutorial_code/ImgTrans/filter2D_demo.cpp
samples/cpp/tutorial_code/ImgTrans/houghcircles.cpp
samples/cpp/tutorial_code/ImgTrans/houghlines.cpp
samples/cpp/tutorial_code/ImgTrans/imageSegmentation.cpp
samples/cpp/tutorial_code/ShapeDescriptors/findContours_demo.cpp
samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo1.cpp
samples/cpp/tutorial_code/ShapeDescriptors/generalContours_demo2.cpp
samples/cpp/tutorial_code/ShapeDescriptors/hull_demo.cpp
samples/cpp/tutorial_code/ShapeDescriptors/moments_demo.cpp
samples/cpp/tutorial_code/TrackingMotion/cornerDetector_Demo.cpp
samples/cpp/tutorial_code/TrackingMotion/cornerHarris_Demo.cpp
samples/cpp/tutorial_code/TrackingMotion/cornerSubPix_Demo.cpp
samples/cpp/tutorial_code/TrackingMotion/goodFeaturesToTrack_Demo.cpp
samples/cpp/tutorial_code/core/AddingImages/AddingImages.cpp
samples/cpp/tutorial_code/core/discrete_fourier_transform/discrete_fourier_transform.cpp
samples/cpp/tutorial_code/core/mat_mask_operations/mat_mask_operations.cpp
samples/cpp/tutorial_code/features2D/AKAZE_match.cpp
samples/cpp/tutorial_code/features2D/Homography/decompose_homography.cpp
samples/cpp/tutorial_code/features2D/Homography/homography_from_camera_displacement.cpp
samples/cpp/tutorial_code/features2D/Homography/panorama_stitching_rotating_camera.cpp
samples/cpp/tutorial_code/features2D/Homography/perspective_correction.cpp
samples/cpp/tutorial_code/features2D/Homography/pose_from_homography.cpp
samples/cpp/tutorial_code/features2D/feature_description/SURF_matching_Demo.cpp
samples/cpp/tutorial_code/features2D/feature_detection/SURF_detection_Demo.cpp
samples/cpp/tutorial_code/features2D/feature_flann_matcher/SURF_FLANN_matching_Demo.cpp
samples/cpp/tutorial_code/features2D/feature_homography/SURF_FLANN_matching_homography_Demo.cpp
samples/cpp/tutorial_code/introduction/display_image/display_image.cpp
samples/cpp/tutorial_code/introduction/windows_visual_studio_opencv/introduction_windows_vs.cpp
samples/cpp/tutorial_code/ml/introduction_to_pca/introduction_to_pca.cpp
samples/cpp/tutorial_code/objectDetection/objectDetection.cpp
samples/cpp/tutorial_code/photo/decolorization/decolor.cpp
samples/cpp/tutorial_code/photo/non_photorealistic_rendering/npr_demo.cpp
samples/cpp/tutorial_code/video/bg_sub.cpp
samples/cpp/tutorial_code/video/optical_flow/optical_flow.cpp
samples/cpp/tutorial_code/xfeatures2D/LATCH_match.cpp
samples/cpp/warpPerspective_demo.cpp
samples/cpp/watershed.cpp
samples/tapi/hog.cpp

index 4c03e48..3ad06a4 100644 (file)
@@ -4,6 +4,7 @@
 #include <opencv2/core.hpp>
 #include <opencv2/imgproc.hpp>
 #include <opencv2/highgui.hpp>
+#include <opencv2/videoio.hpp>
 #include <opencv2/core/utils/trace.hpp>
 
 using namespace cv;
index 3e416b3..4a564af 100644 (file)
@@ -56,11 +56,6 @@ static void updateBrightnessContrast( int /*arg*/, void* )
                    Scalar::all(0), -1, 8, 0 );
     imshow("histogram", histImage);
 }
-static void help()
-{
-    std::cout << "\nThis program demonstrates the use of calcHist() -- histogram creation.\n"
-              << "Usage: \n" << "demhist [image_name -- Defaults to baboon.jpg]" << std::endl;
-}
 
 const char* keys =
 {
@@ -70,9 +65,10 @@ const char* keys =
 int main( int argc, const char** argv )
 {
     CommandLineParser parser(argc, argv, keys);
+    parser.about("\nThis program demonstrates the use of calcHist() -- histogram creation.\n");
     if (parser.has("help"))
     {
-        help();
+        parser.printMessage();
         return 0;
     }
     string inputImage = parser.get<string>(0);
index 652ffb3..f57ae3f 100644 (file)
@@ -9,12 +9,11 @@
 using namespace cv;
 using namespace std;
 
-static void help()
+static void help(const char ** argv)
 {
     printf("\nThis program demonstrated the use of the discrete Fourier transform (dft)\n"
            "The dft of an image is taken and it's power spectrum is displayed.\n"
-           "Usage:\n"
-            "./dft [image_name -- default lena.jpg]\n");
+           "Usage:\n %s [image_name -- default lena.jpg]\n",argv[0]);
 }
 
 const char* keys =
@@ -24,18 +23,18 @@ const char* keys =
 
 int main(int argc, const char ** argv)
 {
-    help();
+    help(argv);
     CommandLineParser parser(argc, argv, keys);
     if (parser.has("help"))
     {
-        help();
+        help(argv);
         return 0;
     }
     string filename = parser.get<string>(0);
     Mat img = imread(samples::findFile(filename), IMREAD_GRAYSCALE);
     if( img.empty() )
     {
-        help();
+        help(argv);
         printf("Cannot read image file: %s\n", filename.c_str());
         return -1;
     }
index 88d632b..cf3a2a3 100644 (file)
@@ -1,6 +1,7 @@
 #include "opencv2/objdetect.hpp"
 #include "opencv2/highgui.hpp"
 #include "opencv2/imgproc.hpp"
+#include "opencv2/videoio.hpp"
 #include <iostream>
 
 using namespace std;
index cb074bd..ed422b3 100644 (file)
@@ -14,15 +14,16 @@ struct ParamColorMap {
 };
 
 String winName="False color";
-static const String ColorMaps[] = { "Autumn", "Bone", "Jet", "Winter", "Rainbow", "Ocean", "Summer",
-                                    "Spring", "Cool", "HSV", "Pink", "Hot", "Parula", "User defined (random)"};
+static const String ColorMaps[] = { "Autumn", "Bone", "Jet", "Winter", "Rainbow", "Ocean", "Summer", "Spring",
+                                    "Cool", "HSV", "Pink", "Hot", "Parula", "Magma", "Inferno", "Plasma", "Viridis",
+                                    "Cividis", "Twilight", "Twilight Shifted", "Turbo", "User defined (random)" };
 
 static void TrackColorMap(int x, void *r)
 {
     ParamColorMap *p = (ParamColorMap*)r;
     Mat dst;
     p->iColormap= x;
-    if (x == COLORMAP_PARULA + 1)
+    if (x == COLORMAP_TURBO + 1)
     {
         Mat lutRND(256, 1, CV_8UC3);
         randu(lutRND, Scalar(0, 0, 0), Scalar(255, 255, 255));
@@ -98,7 +99,7 @@ int main(int argc, char** argv)
     namedWindow(winName);
     createTrackbar("colormap", winName,&p.iColormap,1,TrackColorMap,(void*)&p);
     setTrackbarMin("colormap", winName, COLORMAP_AUTUMN);
-    setTrackbarMax("colormap", winName, COLORMAP_PARULA+1);
+    setTrackbarMax("colormap", winName, COLORMAP_TURBO+1);
     setTrackbarPos("colormap", winName, -1);
 
     TrackColorMap(0, (void*)&p);
index 175bff8..cabf552 100644 (file)
@@ -8,13 +8,12 @@
 using namespace cv;
 using namespace std;
 
-static void help()
+static void help( char** argv )
 {
     cout << "\nCool inpainging demo. Inpainting repairs damage to images by floodfilling the damage \n"
             << "with surrounding image areas.\n"
             "Using OpenCV version %s\n" << CV_VERSION << "\n"
-    "Usage:\n"
-        "./inpaint [image_name -- Default fruits.jpg]\n" << endl;
+            "Usage:\n" << argv[0] <<" [image_name -- Default fruits.jpg]\n" << endl;
 
     cout << "Hot keys: \n"
         "\tESC - quit the program\n"
@@ -48,7 +47,7 @@ static void onMouse( int event, int x, int y, int flags, void* )
 int main( int argc, char** argv )
 {
     cv::CommandLineParser parser(argc, argv, "{@image|fruits.jpg|}");
-    help();
+    help(argv);
 
     string filename = samples::findFile(parser.get<string>("@image"));
     Mat img0 = imread(filename, IMREAD_COLOR);
index c7640db..9671f3b 100644 (file)
@@ -31,9 +31,9 @@ public:
         // groupThreshold (set groupThreshold to 0 to turn off the grouping completely).
         vector<Rect> found;
         if (m == Default)
-            hog.detectMultiScale(img, found, 0, Size(8,8), Size(32,32), 1.05, 2, false);
+            hog.detectMultiScale(img, found, 0, Size(8,8), Size(), 1.05, 2, false);
         else if (m == Daimler)
-            hog_d.detectMultiScale(img, found, 0.5, Size(8,8), Size(32,32), 1.05, 2, true);
+            hog_d.detectMultiScale(img, found, 0, Size(8,8), Size(), 1.05, 2, true);
         return found;
     }
     void adjustRect(Rect & r) const
@@ -54,7 +54,7 @@ static const string keys = "{ help h   |   | print help message }"
 int main(int argc, char** argv)
 {
     CommandLineParser parser(argc, argv, keys);
-    parser.about("This sample demonstrates the use ot the HoG descriptor.");
+    parser.about("This sample demonstrates the use of the HoG descriptor.");
     if (parser.has("help"))
     {
         parser.printMessage();
@@ -114,7 +114,7 @@ int main(int argc, char** argv)
         imshow("People detector", frame);
 
         // interact with user
-        const char key = (char)waitKey(30);
+        const char key = (char)waitKey(1);
         if (key == 27 || key == 'q') // ESC
         {
             cout << "Exit requested" << endl;
index b9b73c6..cdd653a 100644 (file)
@@ -1,24 +1,18 @@
 #include "opencv2/imgproc.hpp"
 #include "opencv2/highgui.hpp"
+#include "opencv2/videoio.hpp"
 #include <iostream>
 
 using namespace cv;
 
-static void help( void )
-{
-    printf("\nThis program illustrates Linear-Polar and Log-Polar image transforms\n"
-            "Usage :\n"
-            "./polar_transforms [[camera number -- Default 0],[path_to_filename]]\n\n");
-}
-
 int main( int argc, char** argv )
 {
     VideoCapture capture;
     Mat log_polar_img, lin_polar_img, recovered_log_polar, recovered_lin_polar_img;
 
-    help();
-
-    CommandLineParser parser(argc, argv, "{@input|0|}");
+    CommandLineParser parser(argc, argv, "{@input|0| camera device number or video file path}");
+    parser.about("\nThis program illustrates usage of Linear-Polar and Log-Polar image transforms\n");
+    parser.printMessage();
     std::string arg = parser.get<std::string>("@input");
 
     if( arg.size() == 1 && isdigit(arg[0]) )
@@ -28,9 +22,7 @@ int main( int argc, char** argv )
 
     if( !capture.isOpened() )
     {
-        const char* name = argv[0];
         fprintf(stderr,"Could not initialize capturing...\n");
-        fprintf(stderr,"Usage: %s <CAMERA_NUMBER>    , or \n       %s <VIDEO_FILE>\n", name, name);
         return -1;
     }
 
@@ -102,15 +94,6 @@ int main( int argc, char** argv )
         drawMarker(src, Point(x, y), Scalar(0, 255, 0));
         drawMarker(dst, Point(rho, phi), Scalar(0, 255, 0));
 
-
-#if 0  //C version
-        CvMat src = frame;
-        CvMat dst = lin_polar_img;
-        CvMat inverse = recovered_lin_polar_img;
-        cvLinearPolar(&src, &dst, center, maxRadius, flags);
-        cvLinearPolar(&dst, &inverse, center, maxRadius,flags + WARP_INVERSE_MAP);
-#endif
-
         imshow("Src frame", src);
         imshow("Log-Polar", log_polar_img);
         imshow("Linear-Polar", lin_polar_img);
index 41c19f1..1e938f6 100644 (file)
@@ -1,6 +1,7 @@
 #include "opencv2/objdetect.hpp"
 #include "opencv2/imgproc.hpp"
 #include "opencv2/highgui.hpp"
+#include "opencv2/videoio.hpp"
 #include <string>
 #include <iostream>
 
index ceac5e9..4da0ce8 100644 (file)
@@ -1,22 +1,23 @@
 #include "opencv2/objdetect.hpp"
 #include "opencv2/highgui.hpp"
 #include "opencv2/imgproc.hpp"
+#include "opencv2/videoio.hpp"
 #include <iostream>
 
 using namespace std;
 using namespace cv;
 
-static void help()
+static void help(const char** argv)
 {
     cout << "\nThis program demonstrates the smile detector.\n"
-            "Usage:\n"
-            "./smiledetect [--cascade=<cascade_path> this is the frontal face classifier]\n"
+            "Usage:\n" <<
+            argv[0] << " [--cascade=<cascade_path> this is the frontal face classifier]\n"
             "   [--smile-cascade=[<smile_cascade_path>]]\n"
             "   [--scale=<image scale greater or equal to 1, try 2.0 for example. The larger the faster the processing>]\n"
             "   [--try-flip]\n"
             "   [video_filename|camera_index]\n\n"
-            "Example:\n"
-            "./smiledetect --cascade=\"data/haarcascades/haarcascade_frontalface_alt.xml\" --smile-cascade=\"data/haarcascades/haarcascade_smile.xml\" --scale=2.0\n\n"
+            "Example:\n" <<
+            argv[0] << " --cascade=\"data/haarcascades/haarcascade_frontalface_alt.xml\" --smile-cascade=\"data/haarcascades/haarcascade_smile.xml\" --scale=2.0\n\n"
             "During execution:\n\tHit any key to quit.\n"
             "\tUsing OpenCV version " << CV_VERSION << "\n" << endl;
 }
@@ -35,7 +36,7 @@ int main( int argc, const char** argv )
     string inputName;
     bool tryflip;
 
-    help();
+    help(argv);
 
     CascadeClassifier cascade, nestedCascade;
     double scale;
@@ -46,7 +47,7 @@ int main( int argc, const char** argv )
         "{try-flip||}{@input||}");
     if (parser.has("help"))
     {
-        help();
+        help(argv);
         return 0;
     }
     cascadeName = samples::findFile(parser.get<string>("cascade"));
@@ -56,7 +57,7 @@ int main( int argc, const char** argv )
     scale = parser.get<int>("scale");
     if (!parser.check())
     {
-        help();
+        help(argv);
         return 1;
     }
     if (scale < 1)
@@ -64,13 +65,13 @@ int main( int argc, const char** argv )
     if( !cascade.load( cascadeName ) )
     {
         cerr << "ERROR: Could not load face cascade" << endl;
-        help();
+        help(argv);
         return -1;
     }
     if( !nestedCascade.load( nestedCascadeName ) )
     {
         cerr << "ERROR: Could not load smile cascade" << endl;
-        help();
+        help(argv);
         return -1;
     }
     if( inputName.empty() || (isdigit(inputName[0]) && inputName.size() == 1) )
@@ -108,7 +109,7 @@ int main( int argc, const char** argv )
     else
     {
         cerr << "ERROR: Could not initiate capture" << endl;
-        help();
+        help(argv);
         return -1;
     }
 
index b466e32..36535d1 100644 (file)
@@ -138,8 +138,8 @@ static void drawSquares( Mat& image, const vector<vector<Point> >& squares )
 
 int main(int argc, char** argv)
 {
-    static const char* names[] = { "data/pic1.png", "data/pic2.png", "data/pic3.png",
-        "data/pic4.png", "data/pic5.png", "data/pic6.png", 0 };
+    static const char* names[] = { "pic1.png", "pic2.png", "pic3.png",
+        "pic4.png", "pic5.png", "pic6.png", 0 };
     help(argv[0]);
 
     if( argc > 1)
index 3a1527d..356ff0e 100644 (file)
@@ -2,7 +2,7 @@
 #include "opencv2/highgui.hpp"
 #include "opencv2/ml.hpp"
 #include "opencv2/objdetect.hpp"
-
+#include "opencv2/videoio.hpp"
 #include <iostream>
 #include <time.h>
 
index dce34e7..eeeba00 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @file LinearBlend.cpp
+ * @file AddingImagesTrackbar.cpp
  * @brief Simple linear blender ( dst = alpha*src1 + beta*src2 )
  * @author OpenCV team
  */
@@ -44,8 +44,8 @@ int main( void )
 {
    //![load]
    /// Read images ( both have to be of the same size and type )
-   src1 = imread("../data/LinuxLogo.jpg");
-   src2 = imread("../data/WindowsLogo.jpg");
+   src1 = imread( samples::findFile("LinuxLogo.jpg") );
+   src2 = imread( samples::findFile("WindowsLogo.jpg") );
    //![load]
 
    if( src1.empty() ) { cout << "Error loading src1 \n"; return -1; }
index 12cdebf..cdd33fb 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @file LinearTransforms.cpp
+ * @file BasicLinearTransformsTrackbar.cpp
  * @brief Simple program to change contrast and brightness
  * @date Mon, June 6, 2011
  * @author OpenCV team
@@ -44,12 +44,12 @@ static void on_trackbar( int, void* )
 int main( int argc, char** argv )
 {
    /// Read image given by user
-   String imageName("../data/lena.jpg"); // by default
+   String imageName("lena.jpg"); // by default
    if (argc > 1)
    {
       imageName = argv[1];
    }
-   image = imread( imageName );
+   image = imread( samples::findFile( imageName ) );
 
    /// Initialize values
    alpha = 1;
index 8f5492b..7f1c55b 100644 (file)
@@ -18,8 +18,8 @@ using namespace std;
 int main( int argc, char** argv )
 {
     //! [Load image]
-    CommandLineParser parser( argc, argv, "{@input | ../data/lena.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ), IMREAD_COLOR );
+    CommandLineParser parser( argc, argv, "{@input | lena.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_COLOR );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index f2f0ec0..5bcc878 100644 (file)
@@ -34,7 +34,7 @@ int main( int argc, char** argv )
   if (argc < 3)
   {
     cout << "Not enough parameters" << endl;
-    cout << "Usage:\n./MatchTemplate_Demo <image_name> <template_name> [<mask_name>]" << endl;
+    cout << "Usage:\n" << argv[0] << " <image_name> <template_name> [<mask_name>]" << endl;
     return -1;
   }
 
@@ -51,7 +51,7 @@ int main( int argc, char** argv )
   if(img.empty() || templ.empty() || (use_mask && mask.empty()))
   {
     cout << "Can't read one of the images" << endl;
-    return -1;
+    return EXIT_FAILURE;
   }
   //! [load_image]
 
@@ -71,7 +71,7 @@ int main( int argc, char** argv )
 
   //! [wait_key]
   waitKey(0);
-  return 0;
+  return EXIT_SUCCESS;
   //! [wait_key]
 }
 
index fc45fc2..86167e5 100644 (file)
@@ -18,11 +18,11 @@ using namespace cv;
 int main(int argc, char** argv)
 {
     //! [Load image]
-    CommandLineParser parser( argc, argv, "{@input | ../data/lena.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ), IMREAD_COLOR );
+    CommandLineParser parser( argc, argv, "{@input | lena.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_COLOR );
     if( src.empty() )
     {
-        return -1;
+        return EXIT_FAILURE;
     }
     //! [Load image]
 
@@ -85,5 +85,5 @@ int main(int argc, char** argv)
     waitKey();
     //! [Display]
 
-    return 0;
+    return EXIT_SUCCESS;
 }
index 0e6cb0a..dc7b849 100644 (file)
@@ -22,8 +22,8 @@ int main( int argc, char** argv )
 {
     /// Read image given by user
     //! [basic-linear-transform-load]
-    CommandLineParser parser( argc, argv, "{@input | ../data/lena.jpg | input image}" );
-    Mat image = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | lena.jpg | input image}" );
+    Mat image = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( image.empty() )
     {
       cout << "Could not open or find the image!\n" << endl;
@@ -67,7 +67,7 @@ int main( int argc, char** argv )
     imshow("Original Image", image);
     imshow("New Image", new_image);
 
-    /// Wait until user press some key
+    /// Wait until the user press a key
     waitKey();
     //! [basic-linear-transform-display]
     return 0;
index 4f5ab98..48b0c2e 100644 (file)
@@ -31,8 +31,8 @@ void Dilation( int, void* );
 int main( int argc, char** argv )
 {
   /// Load an image
-  CommandLineParser parser( argc, argv, "{@input | ../data/LinuxLogo.jpg | input image}" );
-  src = imread( parser.get<String>( "@input" ), IMREAD_COLOR );
+  CommandLineParser parser( argc, argv, "{@input | LinuxLogo.jpg | input image}" );
+  src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_COLOR );
   if( src.empty() )
   {
     cout << "Could not open or find the image!\n" << endl;
index ce71a3b..3bc40d3 100644 (file)
@@ -33,13 +33,13 @@ void Morphology_Operations( int, void* );
 int main( int argc, char** argv )
 {
   //![load]
-  CommandLineParser parser( argc, argv, "{@input | ../data/baboon.jpg | input image}" );
-  src = imread( parser.get<String>( "@input" ), IMREAD_COLOR );
+  CommandLineParser parser( argc, argv, "{@input | baboon.jpg | input image}" );
+  src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_COLOR );
   if (src.empty())
   {
     std::cout << "Could not open or find the image!\n" << std::endl;
     std::cout << "Usage: " << argv[0] << " <Input image>" << std::endl;
-    return -1;
+    return EXIT_FAILURE;
   }
   //![load]
 
index 1cc7bf2..22192b5 100644 (file)
@@ -27,16 +27,16 @@ int main( int argc, char** argv )
             " * [ESC] -> Close program \n" << endl;
 
     //![load]
-    const char* filename = argc >=2 ? argv[1] : "../data/chicky_512.png";
+    const char* filename = argc >=2 ? argv[1] : "chicky_512.png";
 
     // Loads an image
-    Mat src = imread( filename );
+    Mat src = imread( samples::findFile( filename ) );
 
     // Check if image is loaded fine
     if(src.empty()){
         printf(" Error opening image\n");
-        printf(" Program Arguments: [image_name -- default ../data/chicky_512.png] \n");
-        return -1;
+        printf(" Program Arguments: [image_name -- default chicky_512.png] \n");
+        return EXIT_FAILURE;
     }
     //![load]
 
@@ -65,5 +65,5 @@ int main( int argc, char** argv )
     }
     //![loop]
 
-    return 0;
+    return EXIT_SUCCESS;
 }
index 34d5733..f561c54 100644 (file)
@@ -33,14 +33,14 @@ int main( int argc, char ** argv )
     namedWindow( window_name, WINDOW_AUTOSIZE );
 
     /// Load the source image
-    const char* filename = argc >=2 ? argv[1] : "../data/lena.jpg";
+    const char* filename = argc >=2 ? argv[1] : "lena.jpg";
 
-    src = imread( filename, IMREAD_COLOR );
-    if(src.empty())
+    src = imread( samples::findFile( filename ), IMREAD_COLOR );
+    if (src.empty())
     {
         printf(" Error opening image\n");
-        printf(" Usage: ./Smoothing [image_name -- default ../data/lena.jpg] \n");
-        return -1;
+        printf(" Usage:\n %s [image_name-- default lena.jpg] \n", argv[0]);
+        return EXIT_FAILURE;
     }
 
     if( display_caption( "Original Image" ) != 0 )
index a0f4b88..e44291c 100644 (file)
@@ -49,16 +49,16 @@ static void Threshold_Demo( int, void* )
 int main( int argc, char** argv )
 {
     //! [load]
-    String imageName("../data/stuff.jpg"); // by default
+    String imageName("stuff.jpg"); // by default
     if (argc > 1)
     {
         imageName = argv[1];
     }
-    src = imread( imageName, IMREAD_COLOR ); // Load an image
+    src = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Load an image
 
     if (src.empty())
     {
-        cout << "Cannot read image: " << imageName << std::endl;
+        cout << "Cannot read the image: " << imageName << std::endl;
         return -1;
     }
 
@@ -72,16 +72,16 @@ int main( int argc, char** argv )
     //! [trackbar]
     createTrackbar( trackbar_type,
                     window_name, &threshold_type,
-                    max_type, Threshold_Demo ); // Create Trackbar to choose type of Threshold
+                    max_type, Threshold_Demo ); // Create Trackbar to choose type of Threshold
 
     createTrackbar( trackbar_value,
                     window_name, &threshold_value,
-                    max_value, Threshold_Demo ); // Create Trackbar to choose Threshold value
+                    max_value, Threshold_Demo ); // Create Trackbar to choose Threshold value
     //! [trackbar]
 
     Threshold_Demo( 0, 0 ); // Call the function to initialize
 
-    /// Wait until user finishes program
+    /// Wait until the user finishes the program
     waitKey();
     return 0;
 }
index 0320e5a..d2ced1f 100644 (file)
@@ -1,5 +1,6 @@
 #include "opencv2/imgproc.hpp"
 #include "opencv2/highgui.hpp"
+#include "opencv2/videoio.hpp"
 #include <iostream>
 
 using namespace cv;
index 7c977a3..51936c4 100644 (file)
@@ -64,8 +64,8 @@ void on_gamma_correction_trackbar(int, void *)
 
 int main( int argc, char** argv )
 {
-    CommandLineParser parser( argc, argv, "{@input | ../data/lena.jpg | input image}" );
-    img_original = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | lena.jpg | input image}" );
+    img_original = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( img_original.empty() )
     {
       cout << "Could not open or find the image!\n" << endl;
index ac10f9c..9a909de 100644 (file)
@@ -17,8 +17,8 @@ using namespace cv;
 int main(int argc, char** argv)
 {
     //! [load_image]
-    CommandLineParser parser(argc, argv, "{@input | ../data/notes.png | input image}");
-    Mat src = imread(parser.get<String>("@input"), IMREAD_COLOR);
+    CommandLineParser parser(argc, argv, "{@input | notes.png | input image}");
+    Mat src = imread( samples::findFile( parser.get<String>("@input") ), IMREAD_COLOR);
     if (src.empty())
     {
         cout << "Could not open or find the image!\n" << endl;
index cd65f15..0ac1a96 100644 (file)
@@ -58,8 +58,8 @@ static void CannyThreshold(int, void*)
 int main( int argc, char** argv )
 {
   //![load]
-  CommandLineParser parser( argc, argv, "{@input | ../data/fruits.jpg | input image}" );
-  src = imread( parser.get<String>( "@input" ), IMREAD_COLOR ); // Load an image
+  CommandLineParser parser( argc, argv, "{@input | fruits.jpg | input image}" );
+  src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_COLOR ); // Load an image
 
   if( src.empty() )
   {
index 2e91467..65ca184 100644 (file)
@@ -18,8 +18,8 @@ using namespace std;
 int main( int argc, char** argv )
 {
     //! [Load the image]
-    CommandLineParser parser( argc, argv, "{@input | ../data/lena.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | lena.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index a1c3b1e..ea081f4 100644 (file)
@@ -18,7 +18,6 @@ namespace
     const std::string windowName = "Hough Circle Detection Demo";
     const std::string cannyThresholdTrackbarName = "Canny threshold";
     const std::string accumulatorThresholdTrackbarName = "Accumulator Threshold";
-    const std::string usage = "Usage : tutorial_HoughCircle_Demo <path_to_input_image>\n";
 
     // initial and max values of the parameters of interests.
     const int cannyThresholdInitialValue = 100;
@@ -56,17 +55,17 @@ int main(int argc, char** argv)
     Mat src, src_gray;
 
     // Read the image
-    String imageName("../data/stuff.jpg"); // by default
+    String imageName("stuff.jpg"); // by default
     if (argc > 1)
     {
        imageName = argv[1];
     }
-    src = imread( imageName, IMREAD_COLOR );
+    src = imread( samples::findFile( imageName ), IMREAD_COLOR );
 
     if( src.empty() )
     {
-        std::cerr<<"Invalid input image\n";
-        std::cout<<usage;
+        std::cerr << "Invalid input image\n";
+        std::cout << "Usage : " << argv[0] << " <path_to_input_image>\n";;
         return -1;
     }
 
index 213d07c..12fa051 100644 (file)
@@ -38,12 +38,12 @@ void Probabilistic_Hough( int, void* );
 int main( int argc, char** argv )
 {
    // Read the image
-    String imageName("../data/building.jpg"); // by default
+    String imageName("building.jpg"); // by default
     if (argc > 1)
     {
         imageName = argv[1];
     }
-    src = imread( imageName, IMREAD_COLOR );
+    src = imread( samples::findFile( imageName ), IMREAD_COLOR );
 
    if( src.empty() )
      { help();
index 80b6e84..0c8b1f1 100644 (file)
@@ -26,14 +26,14 @@ int main( int argc, char** argv )
     //![variables]
 
     //![load]
-    const char* imageName = argc >=2 ? argv[1] : "../data/lena.jpg";
+    const char* imageName = argc >=2 ? argv[1] : "lena.jpg";
 
-    src = imread( imageName, IMREAD_COLOR ); // Load an image
+    src = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Load an image
 
     // Check if image is loaded fine
     if(src.empty()){
         printf(" Error opening image\n");
-        printf(" Program Arguments: [image_name -- default ../data/lena.jpg] \n");
+        printf(" Program Arguments: [image_name -- default lena.jpg] \n");
         return -1;
     }
     //![load]
index 9a91478..d4ff193 100644 (file)
@@ -19,11 +19,11 @@ void update_map( int &ind, Mat &map_x, Mat &map_y );
  */
 int main(int argc, const char** argv)
 {
-    CommandLineParser parser(argc, argv, "{@image |../data/chicky_512.png|input image name}");
+    CommandLineParser parser(argc, argv, "{@image |chicky_512.png|input image name}");
     std::string filename = parser.get<std::string>(0);
     //! [Load]
     /// Load the image
-    Mat src = imread( filename, IMREAD_COLOR );
+    Mat src = imread( samples::findFile( filename ), IMREAD_COLOR );
     if (src.empty())
     {
         std::cout << "Cannot read image: " << filename << std::endl;
index 16661d8..9b48f6a 100644 (file)
@@ -19,10 +19,10 @@ using namespace std;
 int main( int argc, char** argv )
 {
   cv::CommandLineParser parser(argc, argv,
-                               "{@input   |../data/lena.jpg|input image}"
-                               "{ksize   k|1|ksize (hit 'K' to increase its value)}"
-                               "{scale   s|1|scale (hit 'S' to increase its value)}"
-                               "{delta   d|0|delta (hit 'D' to increase its value)}"
+                               "{@input   |lena.jpg|input image}"
+                               "{ksize   k|1|ksize (hit 'K' to increase its value at run time)}"
+                               "{scale   s|1|scale (hit 'S' to increase its value at run time)}"
+                               "{delta   d|0|delta (hit 'D' to increase its value at run time)}"
                                "{help    h|false|show help message}");
 
   cout << "The sample uses Sobel or Scharr OpenCV functions for edge detection\n\n";
@@ -43,13 +43,13 @@ int main( int argc, char** argv )
   //![load]
   String imageName = parser.get<String>("@input");
   // As usual we load our source image (src)
-  image = imread( imageName, IMREAD_COLOR ); // Load an image
+  image = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Load an image
 
   // Check if image is loaded fine
   if( image.empty() )
   {
     printf("Error opening image: %s\n", imageName.c_str());
-    return 1;
+    return EXIT_FAILURE;
   }
   //![load]
 
@@ -95,7 +95,7 @@ int main( int argc, char** argv )
 
     if(key == 27)
     {
-      return 0;
+      return EXIT_SUCCESS;
     }
 
     if (key == 'k' || key == 'K')
@@ -120,5 +120,5 @@ int main( int argc, char** argv )
       delta =  0;
     }
   }
-  return 0;
+  return EXIT_SUCCESS;
 }
index 52c7610..2eeff1c 100644 (file)
@@ -25,15 +25,15 @@ RNG rng(12345);
 int main( int argc, char** argv )
 {
     //![load]
-    const char* imageName = argc >=2 ? argv[1] : "../data/lena.jpg";
+    const char* imageName = argc >=2 ? argv[1] : "lena.jpg";
 
     // Loads an image
-    src = imread( imageName, IMREAD_COLOR ); // Load an image
+    src = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Load an image
 
     // Check if image is loaded fine
     if( src.empty()) {
         printf(" Error opening image\n");
-        printf(" Program Arguments: [image_name -- default ../data/lena.jpg] \n");
+        printf(" Program Arguments: [image_name -- default lena.jpg] \n");
         return -1;
     }
     //![load]
index 3b7f3a9..37fb6f6 100644 (file)
@@ -26,16 +26,16 @@ int main ( int argc, char** argv )
     const char* window_name = "filter2D Demo";
 
     //![load]
-    const char* imageName = argc >=2 ? argv[1] : "../data/lena.jpg";
+    const char* imageName = argc >=2 ? argv[1] : "lena.jpg";
 
     // Loads an image
-    src = imread( imageName, IMREAD_COLOR ); // Load an image
+    src = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Load an image
 
     if( src.empty() )
     {
         printf(" Error opening image\n");
-        printf(" Program Arguments: [image_name -- default ../data/lena.jpg] \n");
-        return -1;
+        printf(" Program Arguments: [image_name -- default lena.jpg] \n");
+        return EXIT_FAILURE;
     }
     //![load]
 
@@ -70,5 +70,5 @@ int main ( int argc, char** argv )
         ind++;
     }
 
-    return 0;
+    return EXIT_SUCCESS;
 }
index 2a86941..0cec445 100644 (file)
@@ -12,16 +12,16 @@ using namespace std;
 int main(int argc, char** argv)
 {
     //![load]
-    const char* filename = argc >=2 ? argv[1] : "../data/smarties.png";
+    const char* filename = argc >=2 ? argv[1] : "smarties.png";
 
     // Loads an image
-    Mat src = imread( filename, IMREAD_COLOR );
+    Mat src = imread( samples::findFile( filename ), IMREAD_COLOR );
 
     // Check if image is loaded fine
     if(src.empty()){
         printf(" Error opening image\n");
         printf(" Program Arguments: [image_name -- default %s] \n", filename);
-        return -1;
+        return EXIT_FAILURE;
     }
     //![load]
 
@@ -61,5 +61,5 @@ int main(int argc, char** argv)
     waitKey();
     //![display]
 
-    return 0;
+    return EXIT_SUCCESS;
 }
index 0211d6c..0052c18 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * @file houghclines.cpp
+ * @file houghlines.cpp
  * @brief This program demonstrates line finding with the Hough transform
  */
 
@@ -16,11 +16,11 @@ int main(int argc, char** argv)
     Mat dst, cdst, cdstP;
 
     //![load]
-    const char* default_file = "../data/sudoku.png";
+    const char* default_file = "sudoku.png";
     const char* filename = argc >=2 ? argv[1] : default_file;
 
     // Loads an image
-    Mat src = imread( filename, IMREAD_GRAYSCALE );
+    Mat src = imread( samples::findFile( filename ), IMREAD_GRAYSCALE );
 
     // Check if image is loaded fine
     if(src.empty()){
index d038cbd..201466e 100644 (file)
@@ -15,8 +15,8 @@ int main(int argc, char *argv[])
 {
     //! [load_image]
     // Load the image
-    CommandLineParser parser( argc, argv, "{@input | ../data/cards.png | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | cards.png | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 1083657..15990b5 100644 (file)
@@ -25,8 +25,8 @@ void thresh_callback(int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image
-    CommandLineParser parser( argc, argv, "{@input | ../data/HappyFish.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | HappyFish.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
       cout << "Could not open or find the image!\n" << endl;
index f8eb194..68fa2b9 100644 (file)
@@ -26,8 +26,8 @@ int main( int argc, char** argv )
 {
     //! [setup]
     /// Load source image
-    CommandLineParser parser( argc, argv, "{@input | ../data/stuff.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | stuff.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 2018b64..81e5fd7 100644 (file)
@@ -25,8 +25,8 @@ void thresh_callback(int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image and convert it to gray
-    CommandLineParser parser( argc, argv, "{@input | ../data/stuff.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | stuff.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 6640286..3b46f9e 100644 (file)
@@ -25,8 +25,8 @@ void thresh_callback(int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image and convert it to gray
-    CommandLineParser parser( argc, argv, "{@input | ../data/stuff.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | stuff.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index eaccd14..9b243ca 100644 (file)
@@ -26,8 +26,8 @@ void thresh_callback(int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image
-    CommandLineParser parser( argc, argv, "{@input | ../data/stuff.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | stuff.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
 
     if( src.empty() )
     {
index 894b01c..a43024e 100644 (file)
@@ -38,8 +38,8 @@ void myHarris_function( int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image and convert it to gray
-    CommandLineParser parser( argc, argv, "{@input | ../data/building.jpg | input image}" );
-    src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | building.jpg | input image}" );
+    src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if ( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 3567270..298f952 100644 (file)
@@ -28,8 +28,8 @@ void cornerHarris_demo( int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image and convert it to gray
-    CommandLineParser parser( argc, argv, "{@input | ../data/building.jpg | input image}" );
-    src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | building.jpg | input image}" );
+    src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if ( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 853078b..5004496 100644 (file)
@@ -29,8 +29,8 @@ void goodFeaturesToTrack_Demo( int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image and convert it to gray
-    CommandLineParser parser( argc, argv, "{@input | ../data/pic3.png | input image}" );
-    src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | pic3.png | input image}" );
+    src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 022cd45..f306f30 100644 (file)
@@ -30,8 +30,8 @@ void goodFeaturesToTrack_Demo( int, void* );
 int main( int argc, char** argv )
 {
     /// Load source image and convert it to gray
-    CommandLineParser parser( argc, argv, "{@input | ../data/pic3.png | input image}" );
-    src = imread( parser.get<String>( "@input" ) );
+    CommandLineParser parser( argc, argv, "{@input | pic3.png | input image}" );
+    src = imread( samples::findFile( parser.get<String>( "@input" ) ) );
     if( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 1181894..83644b6 100644 (file)
@@ -36,12 +36,12 @@ int main( void )
 
    //![load]
    /// Read images ( both have to be of the same size and type )
-   src1 = imread( "../data/LinuxLogo.jpg" );
-   src2 = imread( "../data/WindowsLogo.jpg" );
+   src1 = imread( samples::findFile("LinuxLogo.jpg") );
+   src2 = imread( samples::findFile("WindowsLogo.jpg") );
    //![load]
 
-   if( src1.empty() ) { cout << "Error loading src1" << endl; return -1; }
-   if( src2.empty() ) { cout << "Error loading src2" << endl; return -1; }
+   if( src1.empty() ) { cout << "Error loading src1" << endl; return EXIT_FAILURE; }
+   if( src2.empty() ) { cout << "Error loading src2" << endl; return EXIT_FAILURE; }
 
    //![blend_images]
    beta = ( 1.0 - alpha );
index 7121b16..e9e8096 100644 (file)
@@ -8,25 +8,25 @@
 using namespace cv;
 using namespace std;
 
-static void help(void)
+static void help(char ** argv)
 {
     cout << endl
         <<  "This program demonstrated the use of the discrete Fourier transform (DFT). " << endl
-        <<  "The dft of an image is taken and it's power spectrum is displayed."          << endl
+        <<  "The dft of an image is taken and it's power spectrum is displayed."  << endl << endl
         <<  "Usage:"                                                                      << endl
-        <<  "./discrete_fourier_transform [image_name -- default ../data/lena.jpg]"       << endl;
+        << argv[0] << " [image_name -- default lena.jpg]" << endl << endl;
 }
 
 int main(int argc, char ** argv)
 {
-    help();
+    help(argv);
 
-    const char* filename = argc >=2 ? argv[1] : "../data/lena.jpg";
+    const char* filename = argc >=2 ? argv[1] : "lena.jpg";
 
-    Mat I = imread(filename, IMREAD_GRAYSCALE);
+    Mat I = imread( samples::findFile( filename ), IMREAD_GRAYSCALE);
     if( I.empty()){
         cout << "Error opening image" << endl;
-        return -1;
+        return EXIT_FAILURE;
     }
 
 //! [expand]
@@ -91,5 +91,5 @@ int main(int argc, char ** argv)
     imshow("spectrum magnitude", magI);
     waitKey();
 
-    return 0;
+    return EXIT_SUCCESS;
 }
index 53a0cc4..0fece80 100644 (file)
@@ -12,7 +12,7 @@ static void help(char* progName)
         <<  "This program shows how to filter images with mask: the write it yourself and the"
         << "filter2d way. " << endl
         <<  "Usage:"                                                                        << endl
-        << progName << " [image_path -- default ../data/lena.jpg] [G -- grayscale] "        << endl << endl;
+        << progName << " [image_path -- default lena.jpg] [G -- grayscale] "        << endl << endl;
 }
 
 
@@ -21,19 +21,19 @@ void Sharpen(const Mat& myImage,Mat& Result);
 int main( int argc, char* argv[])
 {
     help(argv[0]);
-    const char* filename = argc >=2 ? argv[1] : "../data/lena.jpg";
+    const char* filename = argc >=2 ? argv[1] : "lena.jpg";
 
     Mat src, dst0, dst1;
 
     if (argc >= 3 && !strcmp("G", argv[2]))
-        src = imread( filename, IMREAD_GRAYSCALE);
+        src = imread( samples::findFile( filename ), IMREAD_GRAYSCALE);
     else
-        src = imread( filename, IMREAD_COLOR);
+        src = imread( samples::findFile( filename ), IMREAD_COLOR);
 
     if (src.empty())
     {
         cerr << "Can't open image ["  << filename << "]" << endl;
-        return -1;
+        return EXIT_FAILURE;
     }
 
     namedWindow("Input", WINDOW_AUTOSIZE);
@@ -67,7 +67,7 @@ int main( int argc, char* argv[])
     imshow( "Output", dst1 );
 
     waitKey();
-    return 0;
+    return EXIT_SUCCESS;
 }
 //! [basic_method]
 void Sharpen(const Mat& myImage,Mat& Result)
index b5b1b92..c5978e9 100755 (executable)
@@ -13,14 +13,14 @@ int main(int argc, char* argv[])
 {
     //! [load]
     CommandLineParser parser(argc, argv,
-                             "{@img1 | ../data/graf1.png | input image 1}"
-                             "{@img2 | ../data/graf3.png | input image 2}"
-                             "{@homography | ../data/H1to3p.xml | homography matrix}");
-    Mat img1 = imread(parser.get<String>("@img1"), IMREAD_GRAYSCALE);
-    Mat img2 = imread(parser.get<String>("@img2"), IMREAD_GRAYSCALE);
+                             "{@img1 | graf1.png | input image 1}"
+                             "{@img2 | graf3.png | input image 2}"
+                             "{@homography | H1to3p.xml | homography matrix}");
+    Mat img1 = imread( samples::findFile( parser.get<String>("@img1") ), IMREAD_GRAYSCALE);
+    Mat img2 = imread( samples::findFile( parser.get<String>("@img2") ), IMREAD_GRAYSCALE);
 
     Mat homography;
-    FileStorage fs(parser.get<String>("@homography"), FileStorage::READ);
+    FileStorage fs( samples::findFile( parser.get<String>("@homography") ), FileStorage::READ);
     fs.getFirstTopLevelNode() >> homography;
     //! [load]
 
index 5f671bb..acc2faa 100644 (file)
@@ -52,8 +52,8 @@ void computeC2MC1(const Mat &R1, const Mat &tvec1, const Mat &R2, const Mat &tve
 void decomposeHomography(const string &img1Path, const string &img2Path, const Size &patternSize,
                          const float squareSize, const string &intrinsicsPath)
 {
-    Mat img1 = imread(img1Path);
-    Mat img2 = imread(img2Path);
+    Mat img1 = imread( samples::findFile( img1Path) );
+    Mat img2 = imread( samples::findFile( img2Path) );
 
     vector<Point2f> corners1, corners2;
     bool found1 = findChessboardCorners(img1, patternSize, corners1);
@@ -69,7 +69,7 @@ void decomposeHomography(const string &img1Path, const string &img2Path, const S
     vector<Point3f> objectPoints;
     calcChessboardCorners(patternSize, squareSize, objectPoints);
 
-    FileStorage fs(intrinsicsPath, FileStorage::READ);
+    FileStorage fs( samples::findFile( intrinsicsPath ), FileStorage::READ);
     Mat cameraMatrix, distCoeffs;
     fs["camera_matrix"] >> cameraMatrix;
     fs["distortion_coefficients"] >> distCoeffs;
@@ -154,9 +154,9 @@ void decomposeHomography(const string &img1Path, const string &img2Path, const S
 
 const char* params
     = "{ help h         |       | print usage }"
-      "{ image1         | ../data/left02.jpg | path to the source chessboard image }"
-      "{ image2         | ../data/left01.jpg | path to the desired chessboard image }"
-      "{ intrinsics     | ../data/left_intrinsics.yml | path to camera intrinsics }"
+      "{ image1         | left02.jpg | path to the source chessboard image }"
+      "{ image2         | left01.jpg | path to the desired chessboard image }"
+      "{ intrinsics     | left_intrinsics.yml | path to camera intrinsics }"
       "{ width bw       | 9     | chessboard width }"
       "{ height bh      | 6     | chessboard height }"
       "{ square_size    | 0.025 | chessboard square size }";
index b0bb4da..5bcb6db 100644 (file)
@@ -65,8 +65,8 @@ void computeC2MC1(const Mat &R1, const Mat &tvec1, const Mat &R2, const Mat &tve
 void homographyFromCameraDisplacement(const string &img1Path, const string &img2Path, const Size &patternSize,
                                       const float squareSize, const string &intrinsicsPath)
 {
-    Mat img1 = imread(img1Path);
-    Mat img2 = imread(img2Path);
+    Mat img1 = imread( samples::findFile( img1Path ) );
+    Mat img2 = imread( samples::findFile( img2Path ) );
 
     //! [compute-poses]
     vector<Point2f> corners1, corners2;
@@ -82,7 +82,7 @@ void homographyFromCameraDisplacement(const string &img1Path, const string &img2
     vector<Point3f> objectPoints;
     calcChessboardCorners(patternSize, squareSize, objectPoints);
 
-    FileStorage fs(intrinsicsPath, FileStorage::READ);
+    FileStorage fs( samples::findFile( intrinsicsPath ), FileStorage::READ);
     Mat cameraMatrix, distCoeffs;
     fs["camera_matrix"] >> cameraMatrix;
     fs["distortion_coefficients"] >> distCoeffs;
@@ -170,9 +170,9 @@ void homographyFromCameraDisplacement(const string &img1Path, const string &img2
 
 const char* params
     = "{ help h         |       | print usage }"
-      "{ image1         | ../data/left02.jpg | path to the source chessboard image }"
-      "{ image2         | ../data/left01.jpg | path to the desired chessboard image }"
-      "{ intrinsics     | ../data/left_intrinsics.yml | path to camera intrinsics }"
+      "{ image1         | left02.jpg | path to the source chessboard image }"
+      "{ image2         | left01.jpg | path to the desired chessboard image }"
+      "{ intrinsics     | left_intrinsics.yml | path to camera intrinsics }"
       "{ width bw       | 9     | chessboard width }"
       "{ height bh      | 6     | chessboard height }"
       "{ square_size    | 0.025 | chessboard square size }";
index 1dadb4c..3ab2928 100755 (executable)
@@ -10,8 +10,8 @@ namespace
 {
 void basicPanoramaStitching(const string &img1Path, const string &img2Path)
 {
-    Mat img1 = imread(img1Path);
-    Mat img2 = imread(img2Path);
+    Mat img1 = imread( samples::findFile( img1Path ) );
+    Mat img2 = imread( samples::findFile( img2Path ) );
 
     //! [camera-pose-from-Blender-at-location-1]
     Mat c1Mo = (Mat_<double>(4,4) << 0.9659258723258972, 0.2588190734386444, 0.0, 1.5529145002365112,
@@ -67,9 +67,9 @@ void basicPanoramaStitching(const string &img1Path, const string &img2Path)
 }
 
 const char* params
-    = "{ help h         |                              | print usage }"
-      "{ image1         | ../data/Blender_Suzanne1.jpg | path to the first Blender image }"
-      "{ image2         | ../data/Blender_Suzanne2.jpg | path to the second Blender image }";
+    = "{ help h   |                      | print usage }"
+      "{ image1   Blender_Suzanne1.jpg | path to the first Blender image }"
+      "{ image2   Blender_Suzanne2.jpg | path to the second Blender image }";
 }
 
 int main(int argc, char *argv[])
index 91abddf..9d5bc24 100644 (file)
@@ -19,8 +19,8 @@ Scalar randomColor( RNG& rng )
 
 void perspectiveCorrection(const string &img1Path, const string &img2Path, const Size &patternSize, RNG &rng)
 {
-    Mat img1 = imread(img1Path);
-    Mat img2 = imread(img2Path);
+    Mat img1 = imread( samples::findFile(img1Path) );
+    Mat img2 = imread( samples::findFile(img2Path) );
 
     //! [find-corners]
     vector<Point2f> corners1, corners2;
@@ -68,8 +68,8 @@ void perspectiveCorrection(const string &img1Path, const string &img2Path, const
 
 const char* params
     = "{ help h         |       | print usage }"
-      "{ image1         | ../data/left02.jpg | path to the source chessboard image }"
-      "{ image2         | ../data/left01.jpg | path to the desired chessboard image }"
+      "{ image1         | left02.jpg | path to the source chessboard image }"
+      "{ image2         | left01.jpg | path to the desired chessboard image }"
       "{ width bw       | 9     | chessboard width }"
       "{ height bh      | 6     | chessboard height }";
 }
index 9be865e..37ebcac 100644 (file)
@@ -42,7 +42,7 @@ void calcChessboardCorners(Size boardSize, float squareSize, vector<Point3f>& co
 void poseEstimationFromCoplanarPoints(const string &imgPath, const string &intrinsicsPath, const Size &patternSize,
                                              const float squareSize)
 {
-    Mat img = imread(imgPath);
+    Mat img = imread( samples::findFile( imgPath) );
     Mat img_corners = img.clone(), img_pose = img.clone();
 
     //! [find-chessboard-corners]
@@ -69,7 +69,7 @@ void poseEstimationFromCoplanarPoints(const string &imgPath, const string &intri
     //! [compute-object-points]
 
     //! [load-intrinsics]
-    FileStorage fs(intrinsicsPath, FileStorage::READ);
+    FileStorage fs( samples::findFile( intrinsicsPath ), FileStorage::READ);
     Mat cameraMatrix, distCoeffs;
     fs["camera_matrix"] >> cameraMatrix;
     fs["distortion_coefficients"] >> distCoeffs;
@@ -126,8 +126,8 @@ void poseEstimationFromCoplanarPoints(const string &imgPath, const string &intri
 
 const char* params
     = "{ help h         |       | print usage }"
-      "{ image          | ../data/left04.jpg | path to a chessboard image }"
-      "{ intrinsics     | ../data/left_intrinsics.yml | path to camera intrinsics }"
+      "{ image          | left04.jpg | path to a chessboard image }"
+      "{ intrinsics     | left_intrinsics.yml | path to camera intrinsics }"
       "{ width bw       | 9     | chessboard width }"
       "{ height bh      | 6     | chessboard height }"
       "{ square_size    | 0.025 | chessboard square size }";
index 3fb34e9..5c307bb 100755 (executable)
@@ -11,15 +11,15 @@ using std::cout;
 using std::endl;
 
 const char* keys =
-    "{ help h |                          | Print help message. }"
-    "{ input1 | ../data/box.png          | Path to input image 1. }"
-    "{ input2 | ../data/box_in_scene.png | Path to input image 2. }";
+    "{ help h |                  | Print help message. }"
+    "{ input1 | box.png          | Path to input image 1. }"
+    "{ input2 | box_in_scene.png | Path to input image 2. }";
 
 int main( int argc, char* argv[] )
 {
     CommandLineParser parser( argc, argv, keys );
-    Mat img1 = imread( parser.get<String>("input1"), IMREAD_GRAYSCALE );
-    Mat img2 = imread( parser.get<String>("input2"), IMREAD_GRAYSCALE );
+    Mat img1 = imread( samples::findFile( parser.get<String>("input1") ), IMREAD_GRAYSCALE );
+    Mat img2 = imread( samples::findFile( parser.get<String>("input2") ), IMREAD_GRAYSCALE );
     if ( img1.empty() || img2.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index ba9494e..f1256e6 100755 (executable)
@@ -12,8 +12,8 @@ using std::endl;
 
 int main( int argc, char* argv[] )
 {
-    CommandLineParser parser( argc, argv, "{@input | ../data/box.png | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ), IMREAD_GRAYSCALE );
+    CommandLineParser parser( argc, argv, "{@input | box.png | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_GRAYSCALE );
     if ( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 1724709..e968ab2 100755 (executable)
@@ -11,15 +11,15 @@ using std::cout;
 using std::endl;
 
 const char* keys =
-    "{ help h |                          | Print help message. }"
-    "{ input1 | ../data/box.png          | Path to input image 1. }"
-    "{ input2 | ../data/box_in_scene.png | Path to input image 2. }";
+    "{ help h |                  | Print help message. }"
+    "{ input1 | box.png          | Path to input image 1. }"
+    "{ input2 | box_in_scene.png | Path to input image 2. }";
 
 int main( int argc, char* argv[] )
 {
     CommandLineParser parser( argc, argv, keys );
-    Mat img1 = imread( parser.get<String>("input1"), IMREAD_GRAYSCALE );
-    Mat img2 = imread( parser.get<String>("input2"), IMREAD_GRAYSCALE );
+    Mat img1 = imread( samples::findFile( parser.get<String>("input1") ), IMREAD_GRAYSCALE );
+    Mat img2 = imread( samples::findFile( parser.get<String>("input2") ), IMREAD_GRAYSCALE );
     if ( img1.empty() || img2.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 231cda8..2aa0bcd 100755 (executable)
@@ -13,15 +13,15 @@ using std::cout;
 using std::endl;
 
 const char* keys =
-        "{ help h |                          | Print help message. }"
-        "{ input1 | ../data/box.png          | Path to input image 1. }"
-        "{ input2 | ../data/box_in_scene.png | Path to input image 2. }";
+        "{ help h |                  | Print help message. }"
+        "{ input1 | box.png          | Path to input image 1. }"
+        "{ input2 | box_in_scene.png | Path to input image 2. }";
 
 int main( int argc, char* argv[] )
 {
     CommandLineParser parser( argc, argv, keys );
-    Mat img_object = imread( parser.get<String>("input1"), IMREAD_GRAYSCALE );
-    Mat img_scene = imread( parser.get<String>("input2"), IMREAD_GRAYSCALE );
+    Mat img_object = imread( samples::findFile( parser.get<String>("input1") ), IMREAD_GRAYSCALE );
+    Mat img_scene = imread( samples::findFile( parser.get<String>("input2") ), IMREAD_GRAYSCALE );
     if ( img_object.empty() || img_scene.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
index 4562867..80151ec 100644 (file)
@@ -4,19 +4,18 @@
 #include <opencv2/highgui.hpp>
 
 #include <iostream>
-#include <string>
 //! [includes]
 
 //! [namespace]
 using namespace cv;
+using namespace std;
 //! [namespace]
 
-using namespace std;
 
 int main( int argc, char** argv )
 {
     //! [load]
-    String imageName( "../data/HappyFish.jpg" ); // by default
+    String imageName( "HappyFish.jpg" ); // by default
     if( argc > 1)
     {
         imageName = argv[1];
@@ -28,7 +27,7 @@ int main( int argc, char** argv )
     //! [mat]
 
     //! [imread]
-    image = imread( imageName, IMREAD_COLOR ); // Read the file
+    image = imread( samples::findFile( imageName ), IMREAD_COLOR ); // Read the file
     //! [imread]
 
     if( image.empty() )                      // Check for invalid input
index 41fe2b1..0080e2c 100644 (file)
@@ -10,7 +10,7 @@ int main( int argc, char** argv )
 {
     if( argc != 2)
     {
-     cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
+     cout <<" Usage: " << argv[0] << " ImageToLoadAndDisplay" << endl;
      return -1;
     }
 
@@ -28,4 +28,4 @@ int main( int argc, char** argv )
 
     waitKey(0); // Wait for a keystroke in the window
     return 0;
-}
\ No newline at end of file
+}
index aa6107c..c0ca672 100644 (file)
@@ -96,11 +96,11 @@ int main(int argc, char** argv)
 {
     //! [pre-process]
     // Load image
-    CommandLineParser parser(argc, argv, "{@input | ../data/pca_test1.jpg | input image}");
+    CommandLineParser parser(argc, argv, "{@input | pca_test1.jpg | input image}");
     parser.about( "This program demonstrates how to use OpenCV PCA to extract the orientation of an object.\n" );
     parser.printMessage();
 
-    Mat src = imread(parser.get<String>("@input"));
+    Mat src = imread( samples::findFile( parser.get<String>("@input") ) );
 
     // Check if image is loaded successfully
     if(src.empty())
@@ -142,5 +142,5 @@ int main(int argc, char** argv)
     imshow("output", src);
 
     waitKey();
-    return 0;
+    return EXIT_SUCCESS;
 }
index 2115549..063aeb2 100644 (file)
@@ -1,7 +1,7 @@
 #include "opencv2/objdetect.hpp"
 #include "opencv2/highgui.hpp"
 #include "opencv2/imgproc.hpp"
-
+#include "opencv2/videoio.hpp"
 #include <iostream>
 
 using namespace std;
@@ -19,16 +19,16 @@ int main( int argc, const char** argv )
 {
     CommandLineParser parser(argc, argv,
                              "{help h||}"
-                             "{face_cascade|../../data/haarcascades/haarcascade_frontalface_alt.xml|Path to face cascade.}"
-                             "{eyes_cascade|../../data/haarcascades/haarcascade_eye_tree_eyeglasses.xml|Path to eyes cascade.}"
+                             "{face_cascade|data/haarcascades/haarcascade_frontalface_alt.xml|Path to face cascade.}"
+                             "{eyes_cascade|data/haarcascades/haarcascade_eye_tree_eyeglasses.xml|Path to eyes cascade.}"
                              "{camera|0|Camera device number.}");
 
     parser.about( "\nThis program demonstrates using the cv::CascadeClassifier class to detect objects (Face + eyes) in a video stream.\n"
                   "You can use Haar or LBP features.\n\n" );
     parser.printMessage();
 
-    String face_cascade_name = parser.get<String>("face_cascade");
-    String eyes_cascade_name = parser.get<String>("eyes_cascade");
+    String face_cascade_name = samples::findFile( parser.get<String>("face_cascade") );
+    String eyes_cascade_name = samples::findFile( parser.get<String>("eyes_cascade") );
 
     //-- 1. Load the cascades
     if( !face_cascade.load( face_cascade_name ) )
index c566dc7..3ad4282 100644 (file)
@@ -26,18 +26,18 @@ using namespace cv;
 
 int main( int argc, char *argv[] )
 {
-    CommandLineParser parser( argc, argv, "{@input | ../data/HappyFish.jpg | input image}" );
-    Mat src = imread( parser.get<String>( "@input" ), IMREAD_COLOR );
+    CommandLineParser parser( argc, argv, "{@input | HappyFish.jpg | input image}" );
+    Mat src = imread( samples::findFile( parser.get<String>( "@input" ) ), IMREAD_COLOR );
     if ( src.empty() )
     {
         cout << "Could not open or find the image!\n" << endl;
         cout << "Usage: " << argv[0] << " <Input image>" << endl;
-        return -1;
+        return EXIT_FAILURE;
     }
-    Mat gray = Mat( src.size(), CV_8UC1 );
-    Mat color_boost = Mat( src.size(), CV_8UC3 );
 
+    Mat gray, color_boost;
     decolor( src, gray, color_boost );
+    imshow( "Source Image", src );
     imshow( "grayscale", gray );
     imshow( "color_boost", color_boost );
     waitKey(0);
index 244e31a..c2d8864 100644 (file)
@@ -25,8 +25,8 @@ using namespace cv;
 int main(int argc, char* argv[])
 {
     int num,type;
-    CommandLineParser parser(argc, argv, "{@input | ../data/lena.jpg | input image}");
-    Mat src = imread(parser.get<String>("@input"), IMREAD_COLOR);
+    CommandLineParser parser(argc, argv, "{@input | lena.jpg | input image}");
+    Mat src = imread( samples::findFile( parser.get<String>("@input") ), IMREAD_COLOR);
 
     if(src.empty())
     {
index 3180abb..5a5d9ea 100644 (file)
@@ -16,9 +16,9 @@ using namespace cv;
 using namespace std;
 
 const char* params
-    = "{ help h         |                   | Print usage }"
-      "{ input          | ../data/vtest.avi | Path to a video or a sequence of image }"
-      "{ algo           | MOG2              | Background subtraction method (KNN, MOG2) }";
+    = "{ help h         |           | Print usage }"
+      "{ input          | vtest.avi | Path to a video or a sequence of image }"
+      "{ algo           | MOG2      | Background subtraction method (KNN, MOG2) }";
 
 int main(int argc, char* argv[])
 {
@@ -41,7 +41,7 @@ int main(int argc, char* argv[])
     //! [create]
 
     //! [capture]
-    VideoCapture capture(parser.get<String>("input"));
+    VideoCapture capture( samples::findFile( parser.get<String>("input") ) );
     if (!capture.isOpened()){
         //error in opening the video input
         cerr << "Unable to open: " << parser.get<String>("input") << endl;
index 9b03d33..0394c6a 100644 (file)
@@ -16,7 +16,7 @@ int main(int argc, char **argv)
         "  https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4";
     const string keys =
         "{ h help |      | print this help message }"
-        "{ @image |<none>| path to image file }";
+        "{ @image | vtest.avi | path to image file }";
     CommandLineParser parser(argc, argv, keys);
     parser.about(about);
     if (parser.has("help"))
@@ -24,7 +24,7 @@ int main(int argc, char **argv)
         parser.printMessage();
         return 0;
     }
-    string filename = parser.get<string>("@image");
+    string filename = samples::findFile(parser.get<string>("@image"));
     if (!parser.check())
     {
         parser.printErrors();
index 2d1282d..e7889f0 100644 (file)
@@ -24,14 +24,14 @@ const float nn_match_ratio = 0.8f;   // Nearest neighbor matching ratio
 int main(int argc, char* argv[])
 {
     CommandLineParser parser(argc, argv,
-                             "{@img1 | ../data/graf1.png | input image 1}"
-                             "{@img2 | ../data/graf3.png | input image 2}"
-                             "{@homography | ../data/H1to3p.xml | homography matrix}");
-    Mat img1 = imread(parser.get<String>("@img1"), IMREAD_GRAYSCALE);
-    Mat img2 = imread(parser.get<String>("@img2"), IMREAD_GRAYSCALE);
+                             "{@img1 | graf1.png | input image 1}"
+                             "{@img2 | graf3.png | input image 2}"
+                             "{@homography | H1to3p.xml | homography matrix}");
+    Mat img1 = imread( samples::findFile( parser.get<String>("@img1") ), IMREAD_GRAYSCALE);
+    Mat img2 = imread( samples::findFile( parser.get<String>("@img2") ), IMREAD_GRAYSCALE);
 
     Mat homography;
-    FileStorage fs(parser.get<String>("@homography"), FileStorage::READ);
+    FileStorage fs( samples::findFile( parser.get<String>("@homography") ), FileStorage::READ);
     fs.getFirstTopLevelNode() >> homography;
 
     vector<KeyPoint> kpts1, kpts2;
index 04e1e95..4a9069f 100644 (file)
@@ -20,7 +20,7 @@ static void help(char** argv)
     cout << "\nThis is a demo program shows how perspective transformation applied on an image, \n"
          "Using OpenCV version " << CV_VERSION << endl;
 
-    cout << "\nUsage:\n" << argv[0] << " [image_name -- Default data/right.jpg]\n" << endl;
+    cout << "\nUsage:\n" << argv[0] << " [image_name -- Default right.jpg]\n" << endl;
 
     cout << "\nHot keys: \n"
          "\tESC, q - quit the program\n"
@@ -45,7 +45,7 @@ bool validation_needed = true;
 int main(int argc, char** argv)
 {
     help(argv);
-    CommandLineParser parser(argc, argv, "{@input| data/right.jpg |}");
+    CommandLineParser parser(argc, argv, "{@input| right.jpg |}");
 
     string filename = samples::findFile(parser.get<string>("@input"));
     Mat original_image = imread( filename );
@@ -81,7 +81,7 @@ int main(int argc, char** argv)
                 {
                     line(image, roi_corners[i-1], roi_corners[(i)], Scalar(0, 0, 255), 2);
                     circle(image, roi_corners[i], 5, Scalar(0, 255, 0), 3);
-                    putText(image, labels[i].c_str(), roi_corners[i], QT_FONT_NORMAL, 0.8, Scalar(255, 0, 0), 2);
+                    putText(image, labels[i].c_str(), roi_corners[i], FONT_HERSHEY_SIMPLEX, 0.8, Scalar(255, 0, 0), 2);
                 }
             }
             imshow( windowTitle, image );
@@ -94,7 +94,7 @@ int main(int argc, char** argv)
             {
                 line(image, roi_corners[i], roi_corners[(i + 1) % 4], Scalar(0, 0, 255), 2);
                 circle(image, roi_corners[i], 5, Scalar(0, 255, 0), 3);
-                putText(image, labels[i].c_str(), roi_corners[i], QT_FONT_NORMAL, 0.8, Scalar(255, 0, 0), 2);
+                putText(image, labels[i].c_str(), roi_corners[i], FONT_HERSHEY_SIMPLEX, 0.8, Scalar(255, 0, 0), 2);
             }
 
             imshow( windowTitle, image );
index f3fefa7..9c48ae0 100644 (file)
@@ -9,11 +9,10 @@
 using namespace cv;
 using namespace std;
 
-static void help()
+static void help(char** argv)
 {
     cout << "\nThis program demonstrates the famous watershed segmentation algorithm in OpenCV: watershed()\n"
-            "Usage:\n"
-            "./watershed [image_name -- default is fruits.jpg]\n" << endl;
+            "Usage:\n" << argv[0] <<" [image_name -- default is fruits.jpg]\n" << endl;
 
 
     cout << "Hot keys: \n"
@@ -51,7 +50,7 @@ int main( int argc, char** argv )
     cv::CommandLineParser parser(argc, argv, "{help h | | }{ @input | fruits.jpg | }");
     if (parser.has("help"))
     {
-        help();
+        help(argv);
         return 0;
     }
     string filename = samples::findFile(parser.get<string>("@input"));
@@ -59,10 +58,11 @@ int main( int argc, char** argv )
 
     if( img0.empty() )
     {
-        cout << "Couldn't open image " << filename << ". Usage: watershed <image_name>\n";
+        cout << "Couldn't open image ";
+        help(argv);
         return 0;
     }
-    help();
+    help(argv);
     namedWindow( "image", 1 );
 
     img0.copyTo(img);
index eee2005..7b4d3a1 100644 (file)
@@ -7,7 +7,6 @@
 #include <opencv2/core/ocl.hpp>
 #include <opencv2/core/utility.hpp>
 #include "opencv2/imgcodecs.hpp"
-#include <opencv2/video.hpp>
 #include <opencv2/videoio.hpp>
 #include <opencv2/highgui.hpp>
 #include <opencv2/objdetect.hpp>