diff --git a/modules/contrib/src/rgbdodometry.cpp b/modules/contrib/src/rgbdodometry.cpp index b7ef933a51..81525f54f7 100644 --- a/modules/contrib/src/rgbdodometry.cpp +++ b/modules/contrib/src/rgbdodometry.cpp @@ -450,7 +450,8 @@ bool computeKsi( int transformType, double diff = static_cast(image1.at(v1,u1)) - static_cast(image0.at(v0,u0)); - double w = 1./(sigma + std::abs(diff)); + double w = sigma + std::abs(diff); + w = w > DBL_EPSILON ? 1./w : 1.; (*computeCFuncPtr)( (double*)C.ptr(pointCount), w * sobelScale * dI_dx1.at(v1,u1),