changed the value that replace NaNs in bilateralFilter_32f
authorMaria Dimashova <maria.dimashova@gmail.com>
Tue, 14 Aug 2012 13:15:03 +0000 (17:15 +0400)
committerMaria Dimashova <maria.dimashova@gmail.com>
Tue, 14 Aug 2012 13:15:03 +0000 (17:15 +0400)
modules/imgproc/src/smooth.cpp

index 91a004a..0587685 100644 (file)
@@ -1538,8 +1538,9 @@ bilateralFilter_32f( const Mat& src, Mat& dst, int d,
     // temporary copy of the image with borders for easy processing
     Mat temp;
     copyMakeBorder( src, temp, radius, radius, radius, radius, borderType );
-    patchNaNs(temp);
-
+    const double insteadNaNValue = -5. * sigma_color;
+    patchNaNs( temp, insteadNaNValue ); // this replacement of NaNs makes the assumption that depth values are nonnegative
+                                        // TODO: make insteadNaNValue avalible in the outside function interface to control the cases breaking the assumption
     // allocate lookup tables
     vector<float> _space_weight(d*d);
     vector<int> _space_ofs(d*d);