Applying “Refined Lee” filter to an imported image

Dear Colleagues,

I am new with Sentinel-1 Toolbox and I improved speckled image with the “Refined Lee” filter. I am not completely satisfied with the achieved results. There is high probability that I did something wrong.

Could you please look at the initial image and the produced filtered one ( see below and *.bmp is in attachment)? Is it what the “Refined Lee” filter usually does?

If you agree that the resulting image quality should be better, could you please review my steps (see below)? Also, please tell me what I should do differently, so that I would be able to achieve the best quality result with the “Refined Lee” filter.

My steps:

  1. focused high-resolution SAR image (see the image below)
  2. output it into .bmp format
  3. Imported this .bmp format to Sentinel-1 Toolbox as following:
    • File \ Import \ Generic Formats \ RGB Image -> *.bmp
  4. Opened my high-resolution image at “Bands” \ “gray”
  5. Applied the filter
    • Radar \ Speckle Filtering \ Single Product Speckle Filter \ Processing Parameters \ Refined Lee
  6. Achieved filtered image (see the image below)
    • Opened new product at “Bands” \ “blue”

Thank you in advance,

Initial image:

After “Refined Lee” filter:
C d (24.6 KB)

I think the result looks very good considering how noisy your original image is.

Hello, Marcus, thank you very much for your confirmation. It helps me a lot!

Hello, I am working with noise filtering in SAR images, specifically with filters in the spatial domain. I am trying to implement the code for the Refined Lee filter. Even though I know it is possible to apply this filter through some packages and several programming languages, I would like to modify some parameters and would not like to use packages or even SNAP. However, I have a great difficulty in programming, I am a beginner in R, so I would like to know if someone has or knows where I can find the script for the Refined Lee filter. Thank you in advance.

Here’s the SNAP-implementation of it in Java, perhaps ChatGPT could explain the code or port it to another language if needed.

1 Like

How can I build the code for the border open window selection process? In the Refined Lee filter algorithm, to filter the center pixel of a 9x9 window, the set of averages is computed for the 16 windows. The window with maximum magnitude is selected and the desired discrete window angle \psi_c=n\pi/16, n=0,1,2,…,15, is chosen accordingly. How to do this selection process computationally?