Merge pull request #2804 from MrKepzie:optflow-rlof-crash

pull/2812/head
Alexander Alekhin 4 years ago
commit 697d9e2c6c
  1. 2
      modules/optflow/include/opencv2/optflow/rlofflow.hpp
  2. 6
      modules/optflow/src/rlofflow.cpp

@ -227,6 +227,7 @@ public:
* @note If the grid size is set to (1,1) and the forward backward threshold <= 0 than pixelwise dense optical flow field is
* computed by RLOF without using interpolation.
*
* @note Note that in output, if no correspondences are found between \a I0 and \a I1, the \a flow is set to 0.
* @see optflow::calcOpticalFlowDenseRLOF(), optflow::RLOFOpticalFlowParameter
*/
class CV_EXPORTS_W DenseRLOFOpticalFlow : public DenseOpticalFlow
@ -493,6 +494,7 @@ public:
* computed with the RLOF.
*
* @note SIMD parallelization is only available when compiling with SSE4.1.
* @note Note that in output, if no correspondences are found between \a I0 and \a I1, the \a flow is set to 0.
*
* @sa optflow::DenseRLOFOpticalFlow, optflow::RLOFOpticalFlowParameter
*/

@ -203,7 +203,11 @@ public:
filtered_prevPoints = prevPoints;
filtered_currPoints = currPoints;
}
// Interpolators below expect non empty matches
if (filtered_prevPoints.empty()) {
flow.setTo(0);
return;
}
if (interp_type == InterpolationType::INTERP_EPIC)
{
Ptr<ximgproc::EdgeAwareInterpolator> gd = ximgproc::createEdgeAwareInterpolator();

Loading…
Cancel
Save