Added quiet mode into videostab sample
authorAlexey Spizhevoy <no@email>
Tue, 20 Mar 2012 08:12:58 +0000 (08:12 +0000)
committerAlexey Spizhevoy <no@email>
Tue, 20 Mar 2012 08:12:58 +0000 (08:12 +0000)
modules/videostab/src/motion_filtering.cpp
samples/cpp/videostab.cpp

index f9f2cbf..d7413e5 100644 (file)
@@ -66,9 +66,13 @@ Mat GaussianMotionFilter::apply(int idx, vector<Mat> &motions) const
 {
     const Mat &cur = at(idx, motions);
     Mat res = Mat::zeros(cur.size(), cur.type());
-    for (int i = -radius_; i <= radius_; ++i)
-        res += weight_[radius_ + i] * getMotion(idx, idx + i, motions);
-    return res;
+    float sum = 0.f;
+    for (int i = std::max(idx - radius_, 0); i <= idx + radius_; ++i)
+    {
+        res += weight_[radius_ + i - idx] * getMotion(idx, i, motions);
+        sum += weight_[radius_ + i - idx];
+    }
+    return res / sum;
 }
 
 } // namespace videostab
index 08fd65b..6616624 100644 (file)
@@ -15,6 +15,7 @@ using namespace cv::videostab;
 Ptr<Stabilizer> stabilizer;
 double outputFps;
 string outputPath;
+bool quietMode;
 
 void run();
 void printHelp();
@@ -32,10 +33,13 @@ void run()
                 writer.open(outputPath, CV_FOURCC('X','V','I','D'), outputFps, stabilizedFrame.size());
             writer << stabilizedFrame;
         }
-        imshow("stabilizedFrame", stabilizedFrame);
-        char key = static_cast<char>(waitKey(3));
-        if (key == 27)
-            break;
+        if (!quietMode)
+        {
+            imshow("stabilizedFrame", stabilizedFrame);
+            char key = static_cast<char>(waitKey(3));
+            if (key == 27)
+                break;
+        }
     }
 
     cout << "\nfinished\n";
@@ -83,6 +87,8 @@ void printHelp()
             "      Set output file path explicitely. The default is stabilized.avi.\n"
             "  --fps=<int_number>\n"
             "      Set output video FPS explicitely. By default the source FPS is used.\n"
+            "  -q, --quiet\n"
+            "      Don't show output video frames.\n"
             "  -h, --help\n"
             "      Print help.\n"
             "\n";
@@ -112,6 +118,7 @@ int main(int argc, const char **argv)
                 "{ | color-inpaint | | }"
                 "{ o | output | stabilized.avi | }"
                 "{ | fps | | }"
+                "{ q | quiet | false | }"
                 "{ h | help | false | }";
         CommandLineParser cmd(argc, argv, keys);
 
@@ -213,6 +220,8 @@ int main(int argc, const char **argv)
         if (!cmd.get<string>("fps").empty())
             outputFps = cmd.get<double>("fps");
 
+        quietMode = cmd.get<bool>("quiet");
+
         // run video processing
         run();
     }