How to compute median of neighboring pixels while using 3 x 3 sliding window?

조회 수: 3 (최근 30일)
shafaq nisar
shafaq nisar 2017년 6월 8일
댓글: Guillaume 2017년 6월 11일
I want to replace any noisy pixel with the median of neighboring pixels in MATLAB. Kindly guide what code I can use?
I have an image which contains noisy pixels, I want to replace the noisy pixels value with the median of its 8 neighbors median value.
I will be very thankful to all.

답변 (1개)

Guillaume
Guillaume 2017년 6월 8일
filteredimage = medfilt2(yourimage, [3 3]);
Note that the current pixel is included in the median calculation, so that's 9 pixels not 8 taken into account.
  댓글 수: 3
Image Analyst
Image Analyst 2017년 6월 10일
It's a color image. Either do it one color channel at a time, or convert the image to grayscale.
Guillaume
Guillaume 2017년 6월 11일
Clearly, as the error message tells you, medfilt2 expects a 2D matrix. Therefore, your matrix must be 3D, that is a colour image. You haven't really told us what you want to do in that case. If you want to apply the median filter to each colour channel independently then you can loop over the channels, or use medfilt3 with a size of 1 in the 3rd dimension:
medfilt3(yourcolourimage, [3 3 1])

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by