Open In App

How to Apply Median Filter For RGB Image in MATLAB?

Last Updated : 21 Feb, 2022
Like Article

Filtering by definition is the process of enhancing or modifying an image by applying some method or algorithm over a small area and extending that algorithm over all the areas of the image. Since we apply the methods over an area, filtering is classified as a neighboring operation. 

Filters are essentially a matrix of values which when hovered over our region of interest in our image give new values by the mathematical computations depending on what type of filter is being applied. One of the popular and widely used filters is the Median Filter.  

Advantages of the Median Filter 

  • Preservation of sharp edges.
  • Removal of salt and pepper noise, that is removal of instances in the image where there is spiky noise.

Disadvantages of Median Filter 

  • The analytical analysis is difficult. There is no error propagation.

In this article, we will be discussing how to apply a Median filter for an RGB Image in MATLAB. 

Approach : 

  • Read the RGB Image.
  • Use the medfilt3(I,[m n p]) command to apply the median filter to each channel of the RGB Image I with neighborhood size m-by-n-by-p.
  • Show both the Images together for comparison purposes.



% Matlab Code for implementing
% a Median Filter on an RGB Image. 
% Reading the Image 
I = imread('GFG.jpeg');
% Creating figure window for input image
% Displaying the input image
% Applying the median filter on the image 
J = medfilt3(I,[3,3,3]);
% Creating figure window for output image
% Displaying the output image 


Figure 1: Input Image 

Figure 2: Output Image

Code Explanation:

  • I = imread(‘GFG.jpeg’); This line reads the image
  • imshow(I); This line displays the input image I in the figure window
  • J = medfilt3(I,[3,3,3]); This line applies the median filtering of the 3-D image I in three dimensions. Each output voxel in J contains the median value in the 3-by-3-by-3 neighborhood around the corresponding voxel in I. (A Voxel is a 3D equivalent of a pixel)
  • imshow(J); This line displays the output image J in another figure window.
  • This method can be applied to various other RGB Images as well and can be toggled by changing the different neighborhood sizes of the voxels for observing the difference in results depending on what size neighborhood we choose.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads