From 830ca3fb38458e36a9d11333e68fb492812fb9c6 Mon Sep 17 00:00:00 2001 From: Austin Blanton Date: Mon, 29 Jul 2013 13:32:05 -0400 Subject: [PATCH] Make OF parameters settable --- openbr/plugins/opticalflow.cpp | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/openbr/plugins/opticalflow.cpp b/openbr/plugins/opticalflow.cpp index 99ed6e1..dcd434e 100644 --- a/openbr/plugins/opticalflow.cpp +++ b/openbr/plugins/opticalflow.cpp @@ -6,22 +6,39 @@ using namespace cv; namespace br { +/*! + * \ingroup transforms + * \brief Gets a two-channel dense optical flow from an image + * \author Austin Blanton \cite imaus10 + */ class OpticalFlowTransform : public UntrainableTransform { Q_OBJECT - Q_PROPERTY(QDouble pyr_scale READ get_pyr_scale WRITE set_pyr_scale RESET reset_pyr_scale STORE false) - BR_PROPERTY(double, pyr_scale, 0.5) - Q_PROPERTY(QString pyr_scale READ get_pyr_scale WRITE set_pyr_scale RESET reset_pyr_scale STORE false) - BR_PROPERTY(double, pyr_scale, 0.5) + // these defaults are optimized for KTH + Q_PROPERTY(double pyr_scale READ get_pyr_scale WRITE set_pyr_scale RESET reset_pyr_scale STORE false) + BR_PROPERTY(double, pyr_scale, 0.1) + Q_PROPERTY(int levels READ get_levels WRITE set_levels RESET reset_levels STORE false) + BR_PROPERTY(int, levels, 1) + Q_PROPERTY(int winsize READ get_winsize WRITE set_winsize RESET reset_winsize STORE false) + BR_PROPERTY(int, winsize, 5) + Q_PROPERTY(int iterations READ get_iterations WRITE set_iterations RESET reset_iterations STORE false) + BR_PROPERTY(int, iterations, 10) + Q_PROPERTY(int poly_n READ get_poly_n WRITE set_poly_n RESET reset_poly_n STORE false) + BR_PROPERTY(int, poly_n, 7) + Q_PROPERTY(double poly_sigma READ get_poly_sigma WRITE set_poly_sigma RESET reset_poly_sigma STORE false) + BR_PROPERTY(double, poly_sigma, 1.1) + Q_PROPERTY(int flags READ get_flags WRITE set_flags RESET reset_flags STORE false) + BR_PROPERTY(int, flags, 0) void project(const Template &src, Template &dst) const { - // get the two images - // these were the best parameters on KTH - calcOpticalFlowFarneback(prevImg, nextImg, dst, 0.1, 1, 5, 10, 7, 1.1, 0); + // TODO: get the two images from AggregateFrames + calcOpticalFlowFarneback(prevImg, nextImg, dst, pyr_scale, levels, winsize, iterations, poly_n, poly_sigma, flags); } -} +}; + +BR_REGISTER(Transform, OpticalFlowTransform) } // namespace br -#include +#include "opticalflow.moc" -- libgit2 0.21.4