1
0
mirror of https://github.com/opencv/opencv_contrib.git synced 2025-10-17 15:26:00 +08:00

rlof optflow: fix crash when no match are found

This commit is contained in:
MrKepzie
2021-01-04 15:14:24 +01:00
committed by Alexandre Gauthier
parent 37315babf9
commit 55f5303cf3
2 changed files with 7 additions and 1 deletions

View File

@@ -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
*/

View File

@@ -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();