I have a question about the Refined Lee Speckle Filter (RLSF), which uses an edgeThreshold value of 5000 by default. I wonder whether this assumes that the intensity data is not calibrated? I use it on IW GRD imagery mostly. Calibrated intensities tend to be in the 0 to 1 range (for agricultural fields) and, thus, the (local) variance in the 7x7 window never exceeds the edgeThreshold, and RLSF will always take the simplified branch (i.e. computePixelValueUsingLocalStatistics) and never the computePixelValueUsingEdgeDetection branch.
How can one figure out the edgeThreshold for calibrated intensity?
I managed to retrieve the orginal paper by J.S. Lee (“Refined Filtering of Image Noise Using Local Statistics”) which maps very nicely to the computeRefinedLee method in SpecklFilterOp. Curiously, he uses an edgeThreshold=500 in the paper, but his samples are 8-bit gray images (photos), which are kind of different from calibrated SAR intensity. I wonder if the 5000 in the SpeckleFilterOp may be some kind of typo (or comes from another paper applied to SAR). Anyway, it looks like an arbitrary choice, and the question is still how to determine this properly, e.g. based on some assumption of variance linked to number of looks.
Any hints welcome.
Just to continue my monologue (…) results for Refined Lee speckle filtering are indeed different for non-calibrated and calibrated imagery, assuming you do not change the 5000 default threshold. As expected, edge and point scatterers are not treated in the “refined” way in calibrated imagery, unless you lower the threshold. The question remains what that threshold should be and/or whether it can be adaptively determined in the local window.
Any clues welcome.
You are right, the default value will only work with non calibrated data. We will change the default in the case the data is Sigma0.
@lveci : how are you going to choose the default threshold value for Sigma0 ?
This has been fixed in version 3. The threshold parameter is no longer needed.