Added the sample from patch #2288 : reading in sequence of images
authorStevenPuttemans <steven.puttemans@lessius.eu>
Mon, 22 Jul 2013 11:00:54 +0000 (13:00 +0200)
committerStevenPuttemans <steven.puttemans@lessius.eu>
Wed, 31 Jul 2013 11:38:18 +0000 (13:38 +0200)
Added bugfixes
- Changed CV_WINDOW_NORMAL to 1
- Changed the help function to static
- Added extra help information on mask specifics

samples/cpp/image_sequence.cpp [new file with mode: 0644]

diff --git a/samples/cpp/image_sequence.cpp b/samples/cpp/image_sequence.cpp
new file mode 100644 (file)
index 0000000..3bb23f0
--- /dev/null
@@ -0,0 +1,57 @@
+#include <opencv2/core/core.hpp>
+#include <opencv2/highgui/highgui.hpp>
+
+#include <iostream>
+
+using namespace cv;
+using namespace std;
+
+static void help(char** argv)
+{
+    cout << "\nThis sample shows you how to read a sequence of images using the VideoCapture interface.\n"
+         << "Usage: " << argv[0] << " <image_mask> (example mask: example_%%02d.jpg)\n"
+                << "Image mask defines the name variation for the input images that have to be read as a sequence. \n"
+                << "Using the mask example_%%02d.jpg will read in images labeled as 'example_00.jpg', 'example_01.jpg', etc."
+         << endl;
+}
+
+int main(int argc, char** argv)
+{
+    if(argc != 2) 
+    {
+        help(argv);
+        return 1;
+    }
+
+    string first_file = argv[1];
+    VideoCapture sequence(first_file);
+    
+    if (!sequence.isOpened())
+    {
+        cerr << "Failed to open the image sequence!\n" << endl;
+        return 1;
+    }
+    
+    Mat image;
+    namedWindow("Image sequence | press ESC to close", 1);
+    
+    for(;;)
+    {
+        // Read in image from sequence
+        sequence >> image;
+               
+        // If no image was retrieved -> end of sequence
+        if(image.empty())
+        {
+            cout << "End of Sequence" << endl;
+            break;
+        }
+        
+        imshow("Image sequence | press ESC to close", image);
+
+        if(waitKey(500) == 27)
+            break;
+    }
+
+    return 0;
+}