Lee Filter - Image Processing
Lee Filter - Image Processing
IMAGE PROCESSING
Lets Learn together... Happy Reading FOLLOW US
Follow @AaronAngel_
" Two roads diverged in a wood, and I,
I took the one less traveled by,
And that has made all the difference "-Robert Frost Search This Blog
Search
Lee filter
In order to reduce the same, a part of the code is realized in C language for improved performance.
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 1/8
30/1/2018 Lee filter | IMAGE PROCESSING
Featured Post
Image Processing
7,726 likes
This function takes the reference image, speckled/noisy image and the window size as input and Like Page
1. The variance of the reference image is found. Variance can be found either by using MATLAB built-in
function or user defined function. Here in this case, a user defined function is used to find the variance.
2. Based on the size of the kernel, the noisy image is padded with zeros on all sides.
3. The center index of the kernel is found
LIKE "IMAGE
4. The noisy image is processed patch by patch. PROCESSING"
5. The code written in C computelee.c to despeckle the image is used. Support this blog by leaving
your valuable comments and a
like on Facebook Fan Page.
THANKS FOR READING
MATLAB code:
function Y = Lee_filter_C(R,E,sz)
%R is the Reference Image ADD ME
%E is the Error or Noisy Image
%K is the Kernel or Window IMAGE PROCES
%Y is the Output Image
Follow
% Y = mean(K)+W*(C-mean(K);
% W = variance(K)/(variance(K)+variance(R))
Subscribe in a reader
%Preallocate the Output Matrix
Y = zeros(size(R));
mn = round((sz-1)/2);
Tot = sz(1,1)*sz(1,2);
EImg = padarray(E,mn);
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 2/8
30/1/2018 Lee filter | IMAGE PROCESSING
Indx = floor(median(1:Tot));
TAGS
for i = 1:size(R,1)
for j = 1:size(R,2) Removing Image
K = EImg(i:i+sz(1,1)-1,j:j+sz(1,2)-1); noise GUI
Y(i,j) = computelee(Rvar,K(Indx),K(:)'); Components in
MATLAB Image
end Conversion Edge detection
end Photoshop effects in
MATLAB MATLAB
BUILT_IN FUNCTIONS
end Morphological Image Processing
Video Processing Array functions
in MATLAB Files Histogram
NOTE: save the above function as Lee_filter_C.m equalization Image Compression
Object Identification Optical
Function to find the variance: illusion Shapes Templates Image
MATLAB code: Geometry Image Arithmetic
If you are familiar with C programming then we just need to understand the gateway from MATLAB to
C programming. The rest of the procedures will be same as we code in c.
The main gateway function for writing the C program is Mex function and it normally takes 4
parameters. Seguir
C code:
#include "mex.h"
MeanW=0;
for (i=0; i
MeanW=MeanW+y[i];
}
MeanW=MeanW/n;
VarW=0;
for(i=0;i
{
VarW=VarW+((y[i]-MeanW)*(y[i]-MeanW));
}
VarW=VarW/n;
W=VarW/(VarW+v);
z[0]=MeanW+W*(In-MeanW);
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 3/8
30/1/2018 Lee filter | IMAGE PROCESSING
}
Rvariance = mxGetScalar(prhs[0]);
CIndx = mxGetScalar(prhs[1]);
inMatrix = mxGetPr(prhs[2]);
ncols = mxGetN(prhs[2]);
Let’s compare the calling function in MATLAB and the C code for better understanding.
MATLAB code:
computelee(Rvar,K(Indx),K(:)');
C code:
Rvariance = mxGetScalar(prhs[0]);
CIndx = mxGetScalar(prhs[1]);
inMatrix = mxGetPr(prhs[2]);
ncols = mxGetN(prhs[2]);
Steps to be performed:
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 4/8
30/1/2018 Lee filter | IMAGE PROCESSING
Let’s see how Lee filter works on homogeneous area and edge based area.
Homogeneous Patch
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 5/8
30/1/2018 Lee filter | IMAGE PROCESSING
The result shows that the filter works well on homogeneous area rather than on edges and lines.
1. If you are using the C code for the first time, its better to find the appropriate compiler and configure to
use it.
2. Compile the C code if the compiler is already present and make sure the compilation is successful.
3. Syntax to setup the compiler: mex - setup
The above syntax will identify the available compilers in your local system and you can configure it
manually.
4. For compiling the above c code: mex computelee.c
For successful compilation, the sample output will look like below:
Building with 'lcc-win32'.
MEX completed successfully.
5. The result of successful compilation will generate computelee.mexw32 for 32 bit system and for 64 bit
system, you can find computelee.mexw64 file in your local directory.
To sum up, the two functions Lee_filter_C.m and myvar.m should be placed in the same directory.
Computelee.c should also be placed in the same directory and the successful compilation of the same is
mandatory.
I hope the readers of my blog will be familiar with working on Mex files. If you need any tutorial or post
on this topic, kindly post or mail your suggestions.
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 6/8
30/1/2018 Lee filter | IMAGE PROCESSING
4 comments:
Sun flower said...
very nice blog http://www.softql.com/
December 24, 2014 at 4:09 PM
saikrishna k said...
how to convert cmexfile to matalab code sir
March 18, 2015 at 1:13 PM
Find Area, Perimeter, Centroid, Equivdiameter, Roundness and Bounding Box without Using MATLAB Function ‘regionprops’
In MATLAB, the function ‘regionprops’ is used to measure the image properties. Here are some basic properties computed
without using the ...
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 7/8
30/1/2018 Lee filter | IMAGE PROCESSING
Powered by Blogger.
3015839
https://angeljohnsy.blogspot.com/2014/08/lee-filter.html 8/8