SAR processing tools plug-in

Skip to end of metadata
Go to start of metadata

 


 
SAR processing tools that can perform speckle removal, edge detection and segmentation
 
 

Download

1.0    - August 16th, 2010

Test SAR images can be found here

Summary


License: LGPL
Price: Free
Author: Yiwei Zhang
Website: http://github.com/zhangyiwei79/Opticks-SAR/
Latest Version: 1.0  updated on 2010-08-16 
Opticks Supported Versions: Opticks 4.3.x
Operating Systems: Windows 32-bit
Support: Ask Yiwei Zhang for assistance on Opticks Mail List or contact zhangyiwei79@gmail.com  

This extension includes some general image processing algorithms. It includes the following:

  • Filter based speckle removal

    Different from other noise removal filters that may blur the edge, this filter will avoid such effect. The main feature of this filter is that, it will first check whether there is an edge within the neighborhood of current pixel. If so, it will try to figure out the orientation of the edge and to which sub-area the pixel belongs to. Finally it will do the speckle removal based on the local mean and variance of the sub-area that the pixel belongs.

  • Wavelet based speckle removal

    This method is based on wavelet transform and shrinkage. First, we calculate the logarithm of the original image data to convert multiplicative noise into additive noise. Then, we divide the original image into 128 by 128 blocks and perform discrete shift-invariant wavelet transform. For each block, we estimate the noise variance based on the median of the wavelet coefficients and calculate the corresponding threshold. After that, we perform soft thresholding for all the non-approximate coefficients, that is, if the absolute value is smaller than threshold, it will be set to zero, otherwise the coefficient will be shrink by the value of threshold. The small coefficients usually corresponds to noise. Finally we perform inverse wavelet transform and reconstruct the image which corresponds to the speckle removed result. 
    Compared to spatial filters, wavelet de-noising has better performance at keeping the edge while less smoothness. Also, the wavelet method consumes more memory because it needs to perform wavelet transform on much larger blocks than spatial filters. But also it is much faster because the latter needs to work on each pixel and its neighbor.

  • Edge detect

    The allows you to detect the edges within SAR images. Because of the nature of SAR image and multiplicative noise, we should compute the ratio of mean value to see if an edge is present. For a fixed window, we calculate the mean values of neighbor blocks at different directions. If the ratio is lower than the threshold, then it indicates there is an edge. Also I add the code to check if a thin line is present in the window by calculating the ratio of block mean and line mean at all directions.  For better performance, we should remove the speckle before detecting edges. 
    We use different sizes of windows and different thresholds for each window size concurrently. The small window can precisely located the edge pixel, but it is also easy to select an isolated noisy pixel as edge. The larger size window can effectively get ride of isolated noisy points but they tend to produce thicker edge. Our algorithm combines the result of different windows together to produce the final result. 
    To run the filter based speckle removal, open an image, then select “Edge detect” from “SAR Processing” menu. Then a threshold setting dialog will pop up for users to modify the default thresholds if they wish. Smaller threshold indicates higher contrast for an edge to be detected.

  • Image segmentation

    This allows you to make segmentation based on the texture feature. Texture can be considered to be repeating patterns of local variation of pixel intensities. For SAR images, different regions, such as sea, fields, mountains, shall have different texture features and we can make segmentation based on the texture feature. This is different from making segmentations based on edge because there are no distinct edges between different regions or the region itself contains many edges inside. For these cases, edges do not separate the regions.
    The algorithm is based on the active contour evolution method that maximizes the difference between the inside and outside part of the contour. First, we calculate the principal curvature at each pixel of the image and initiate an arbitrary contour. Then we calculate the probability density function of the principal curvature for inside and outside part of the contour using Parzen window. We let the contour evolve towards the direction that can increase the KL distance between the PDF functions of the inside and outside part. This procedure is performed iteratively until the KL distance cannot increase. And finally we get the contour of the segmented regions.

How do I get started?
  • Download and install this extension. Learn how to install Opticks extensions.
  • Look under the "SAR Processing" menu for the respective algorithms

Screenshots and Videos

A SAR crops image on the left and the speckle removed image on the right


A SAR filed image on the left and the edge detected image on the right.

 
A SAR river outlet image on the left and the segmented image on the right.

All Downloads

All source code are available at http://github.com/zhangyiwei79/Opticks-SAR/ 

Testing SAR images can be obtained at http://github.com/zhangyiwei79/Opticks-SAR/tree/master/SAR%20images/

Labels

opticks43xextension opticks43xextension Delete
extension extension Delete
windows32 windows32 Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.