Merge pull request #128 from LeonidBeynenson/fix_args_calcOpticalFlowSF

This commit is contained in:
Andrey Kamaev 2012-11-14 17:30:06 +04:00
commit 2e2d927273
3 changed files with 25 additions and 22 deletions

View File

@ -601,17 +601,15 @@ calcOpticalFlowSF
----------------- -----------------
Calculate an optical flow using "SimpleFlow" algorithm. Calculate an optical flow using "SimpleFlow" algorithm.
.. ocv:function:: void calcOpticalFlowSF( Mat& from, Mat& to, Mat& flow, int layers, int averaging_block_size, int max_flow ) .. ocv:function:: void calcOpticalFlowSF( InputArray from, InputArray to, OutputArray flow, int layers, int averaging_block_size, int max_flow )
.. ocv:function:: calcOpticalFlowSF( Mat& from, Mat& to, Mat& flow, int layers, int averaging_block_size, int max_flow, double sigma_dist, double sigma_color, int postprocess_window, double sigma_dist_fix, double sigma_color_fix, double occ_thr, int upscale_averaging_radius, double upscale_sigma_dist, double upscale_sigma_color, double speed_up_thr ) .. ocv:function:: calcOpticalFlowSF( InputArray from, InputArray to, OutputArray flow, int layers, int averaging_block_size, int max_flow, double sigma_dist, double sigma_color, int postprocess_window, double sigma_dist_fix, double sigma_color_fix, double occ_thr, int upscale_averaging_radius, double upscale_sigma_dist, double upscale_sigma_color, double speed_up_thr )
:param prev: First 8-bit 3-channel image. :param prev: First 8-bit 3-channel image.
:param next: Second 8-bit 3-channel image :param next: Second 8-bit 3-channel image of the same size as ``prev``
:param flowX: X-coordinate of estimated flow :param flow: computed flow image that has the same size as ``prev`` and type ``CV_32FC2``
:param flowY: Y-coordinate of estimated flow
:param layers: Number of layers :param layers: Number of layers
@ -631,7 +629,7 @@ Calculate an optical flow using "SimpleFlow" algorithm.
:param occ_thr: threshold for detecting occlusions :param occ_thr: threshold for detecting occlusions
:param upscale_averaging_radiud: window size for bilateral upscale operation :param upscale_averaging_radius: window size for bilateral upscale operation
:param upscale_sigma_dist: spatial sigma for bilateral upscale operation :param upscale_sigma_dist: spatial sigma for bilateral upscale operation

View File

@ -328,16 +328,16 @@ CV_EXPORTS_W Mat estimateRigidTransform( InputArray src, InputArray dst,
bool fullAffine); bool fullAffine);
//! computes dense optical flow using Simple Flow algorithm //! computes dense optical flow using Simple Flow algorithm
CV_EXPORTS_W void calcOpticalFlowSF(Mat& from, CV_EXPORTS_W void calcOpticalFlowSF(InputArray from,
Mat& to, InputArray to,
Mat& flow, OutputArray flow,
int layers, int layers,
int averaging_block_size, int averaging_block_size,
int max_flow); int max_flow);
CV_EXPORTS_W void calcOpticalFlowSF(Mat& from, CV_EXPORTS_W void calcOpticalFlowSF(InputArray from,
Mat& to, InputArray to,
Mat& flow, OutputArray flow,
int layers, int layers,
int averaging_block_size, int averaging_block_size,
int max_flow, int max_flow,

View File

@ -447,7 +447,7 @@ static void extrapolateFlow(Mat& flow,
} }
} }
static void buildPyramidWithResizeMethod(Mat& src, static void buildPyramidWithResizeMethod(const Mat& src,
vector<Mat>& pyramid, vector<Mat>& pyramid,
int layers, int layers,
int interpolation_type) { int interpolation_type) {
@ -464,9 +464,9 @@ static void buildPyramidWithResizeMethod(Mat& src,
} }
} }
CV_EXPORTS_W void calcOpticalFlowSF(Mat& from, CV_EXPORTS_W void calcOpticalFlowSF(InputArray _from,
Mat& to, InputArray _to,
Mat& resulted_flow, OutputArray _resulted_flow,
int layers, int layers,
int averaging_radius, int averaging_radius,
int max_flow, int max_flow,
@ -479,7 +479,11 @@ CV_EXPORTS_W void calcOpticalFlowSF(Mat& from,
int upscale_averaging_radius, int upscale_averaging_radius,
double upscale_sigma_dist, double upscale_sigma_dist,
double upscale_sigma_color, double upscale_sigma_color,
double speed_up_thr) { double speed_up_thr)
{
Mat from = _from.getMat();
Mat to = _to.getMat();
vector<Mat> pyr_from_images; vector<Mat> pyr_from_images;
vector<Mat> pyr_to_images; vector<Mat> pyr_to_images;
@ -632,14 +636,15 @@ CV_EXPORTS_W void calcOpticalFlowSF(Mat& from,
GaussianBlur(flow, flow, Size(3, 3), 5); GaussianBlur(flow, flow, Size(3, 3), 5);
resulted_flow = Mat(flow.size(), CV_32FC2); _resulted_flow.create(flow.size(), CV_32FC2);
Mat resulted_flow = _resulted_flow.getMat();
int from_to[] = {0,1 , 1,0}; int from_to[] = {0,1 , 1,0};
mixChannels(&flow, 1, &resulted_flow, 1, from_to, 2); mixChannels(&flow, 1, &resulted_flow, 1, from_to, 2);
} }
CV_EXPORTS_W void calcOpticalFlowSF(Mat& from, CV_EXPORTS_W void calcOpticalFlowSF(InputArray from,
Mat& to, InputArray to,
Mat& flow, OutputArray flow,
int layers, int layers,
int averaging_block_size, int averaging_block_size,
int max_flow) { int max_flow) {