FEFROST

Enhanced Frost adaptive filter


EnvironmentsPYTHON :: EASI :: MODELER
Quick linksDescription :: Parameters :: Parameter descriptions :: Details :: Example :: Algorithm :: Acknowledgements :: References :: Related

Back to top

Description


FEFROST applies an Enhanced Frost speckle filter on any type of image data. This filter is primarily used on SAR data to remove high-frequency noise (speckle) while preserving high-frequency features (edges).
Back to top

Parameters


fefrost(file, dbic, dboc, flsz, mask, nlook, damp, imagefmt)

Name Type Caption Length Value range
FILE * str Input detected SAR image 1 -    
DBIC * List[int] Input raster channel 1 -    
DBOC * List[int] Output filtered image 1 -    
FLSZ List[int] Filter size 0 - 2 1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 | 23 | 25 | 27 | 29 | 31 | 33
Default: 7,7
MASK List[int] Area mask 0 - 4  
NLOOK List[float] Number of looks 0 - 1 1 - 100
Default: 1
DAMP List[float] Damping factor 0 - 1 0.0 -
Default: 1.0
IMAGEFMT str Image units 0 - 9 Amplitude, Power
Default: Amplitude

* Required parameter
Back to top

Parameter descriptions

FILE

Specifies the name of the file that contains the image data to be filtered and that will receive the output.

DBIC

Specifies the channel in the input detected SAR image to be processed.

DBOC

Specifies the output channel number to receive the filtered results. This channel must already exist within the input file (FILE). If this parameter specifies the same channel as the one defined as the input (DBIC), DBOC overwrites the input channel.

FLSZ

Optionally specifies the horizontal and vertical dimensions of the filter, in pixel units. Acceptable values are odd integers from 1 to 33, inclusively. The filter need not be square. Minimum filter sizes are 1x3 or 3x1; the default size is 7x7.

MASK

Optionally specifies the window or bitmap that defines the area to be processed within the input raster. If this parameter is not specified, the entire channel is processed.

A window mask is specified as follows:
            MASK=Xoffset, Yoffset, Xsize, Ysize
          

Xoffset, Yoffset define the upper-left starting pixel coordinates of the window. Xsize is the number of pixels that define the window width. Ysize is the number of lines that define the window height.

For a bitmap mask, you can specify the bitmap segment number from the FILE that you want to use. All the pixels within the specified segment having a pixel value of 1 define the area to be processed.

Only the area under the mask is written to the output.

NLOOK

Optionally specifies the effective number of looks of the SAR image. This is used to derive noise variance. Over homogeneous areas, the effective number of looks can be computed as the mean value squared divided by the variance (for amplitude data) or the mean divided by the standard deviation (for power data). By adjusting this parameter value, you can control the amount of smoothing applied to the image.

Acceptable values are 1 to 100. The default value of 1 is appropriate for single-look data and specifies maximum smoothing correction to the image.

Instead of 1, the default value of this parameter will be the file level metadata value for 'NumLooks' if this metadata exists.

DAMP

Optionally specifies the damping constant for the adaptive filter. This constant specifies the extent of the damping effect of the filtering. The default value of 1.0 is sufficient for most SAR images.

Note: The use of large values for the damping factor allows for better preservation of sharp edges, but reduces the smoothing effect. The use of small values increases the smoothing effect, but does not preserve sharp edges well. If this parameter is set to 0, the results are identical to those of an average filter, where the weights of each pixel in the filter window are equal.

IMAGEFMT

Optionally specifies the image format of the SAR image, which defines how the correction factor should be computed. By default, the image is assumed to be in amplitude units.

Image units can be "Amplitude" (or equivalently "AMP") and "Power" (or equivalently "POW").

Back to top

Details

FEFROST is used primarily to filter speckled SAR data. The filter smoothes out noise while retaining edges and sharp features in the image. The algorithm consists of an adaptive filter where the result is further smoothed by the damping factor.

Different filter sizes will greatly affect the quality of processed images. If the filter is too small, the noise filtering algorithm is not effective. If the filter is too large, subtle details of the image will be lost in the filtering process.

The Enhanced Frost filter divides an image into areas of three classes. The first class corresponds to the homogeneous areas in which the speckles may be eliminated by applying a low-pass filter (or averaging, multi-look processing). The second class corresponds to the heterogeneous areas in which the speckles are to be reduced while preserving texture. The third class contains areas representing isolated point targets, for which the filter should preserve the observed value.

Back to top

Example

A 5x5 filter is used on a 16-bit image channel containing SAR (radar) data.

from pci.fefrost import fefrost

file	=	'radar.pix'
dbic	=	[1]	# channel 1 contains SAR image
dboc	=	[2]	# channel 2 receives filtered image
flsz	=	[5,5]	# specifies a 5x5 filter
mask	=	[]	# process entire image
nlook	=	[1]	# number of looks
damp	=	[]	# default damping factor is 1.0
imagefmt	=	'AMP'	# Amplitude image format

fefrost( file, dbic, dboc, mask, flsz, nlook, damp, imagefmt)
      
Back to top

Algorithm

The filter output is:

        R = I         if (Ci < Cu)
        R = Rf      if (Cu<=Ci<=Cmax)
        R = CPIXEL      if (Ci > Cmax)
      
where Rf is the result of convolving the image with a circularly symmetric filter whose weighting values M for each pixel is:
      M = exp(-DAMP*(Ci-Cu)/(Cmax-Ci) * T)
where:
        Ci  = sqrt(V)/I
        Cu  = 1/sqrt(NLOOK)
      Cmax = sqrt(1+2/NLOOK)

The resulting gray-level value Rf for the smoothed pixel is:

        Rf = (P1*M1 + P2*M2 + ... +  Pn*Mn) / (M1 + M2 + ... + Mn)
      
where:

All pixels are filtered. To filter pixels located near the edges of the image, edge-pixel values are replicated to provide sufficient data.

For amplitude images, each gray level is squared, and its square root applied to the final result.

The following paper provides a detailed comparison of different radar filtering methods:

Zhenghao Shi and Ko B. Fung, 1994, "A Comparison of Digital Speckle Filters", Proceedings of IGRASS 94, August 8-12, 1994.

Back to top

Acknowledgements

PCI Geomatics wishes to acknowledge the assistance of Ko B. Fung and Zhenghao Shi at Canada Centre for Remote Sensing for providing source code and assistance of their programs. Special thanks to Dr. R. Touzi from Canada Centre for Remote Sensing for his helpful suggestions and comments.

Back to top

References

Lopes, R. Touzi and E. Nezry, "Adaptive Speckle Filters and Scene Heterogeneity", IEEE Transaction on Geoscience and Remote Sensing, Vol. 28, No. 6, pp. 992-1000, Nov. 1990.

Zhenghao Shi and Ko B. Fung, 1994, "A Comparison of Digital Speckle Filters", Proceedings of IGRASS 94, August 8-12, 1994.

© PCI Geomatics Enterprises, Inc.®, 2026. All rights reserved.