Apply a Local Averaging Mask

44 ビュー (過去 30 日間)
Diego Espinosa
Diego Espinosa 2018 年 2 月 26 日
編集済み: Image Analyst 2019 年 8 月 14 日
How can you apply a 3x3 local averaging mask to enhance the sharpness in an image. How can you set the mask? I'd like to get a better understanding in how this method of filtering an image works and how to compute the algorithm.

採用された回答

Walter Roberson
Walter Roberson 2018 年 2 月 26 日
Local averaging:
conv(double(YourImage), ones(3,3)/9, 'same')
ones(3,3)/9 is not usually the mask used for sharpening. You tend to sharpen horizontally and vertically separately, using a mask such as [0, 1, 0; -1 0 -1; 0 1 0]
  6 件のコメント
Thulitha Theekshana
Thulitha Theekshana 2019 年 8 月 14 日
Remember to convert the output of conv2 to uint range. ( maybe using a function such as mat2gray ) before imshow. Otherwise the image wouldn't be displayed.
Image Analyst
Image Analyst 2019 年 8 月 14 日
Or you can use bracket bracket and leave it as floating point:
filteredImage = conv(double(YourImage), ones(3,3)/9, 'same')
imshow(filteredImage, []);

サインインしてコメントする。

その他の回答 (1 件)

Image Analyst
Image Analyst 2018 年 2 月 27 日
編集済み: Image Analyst 2019 年 8 月 14 日
You can use imfilter() instead of convolution, but it's doing pretty much a similar thing (multiplying a sliding window by the image under the window). To sharpen edges you'd use a kernel that's 17 in the middle and -1 around the sides:
kernel = -1 * ones(3);
kernel(3,3) = 17;
output = conv2(double(intputImage), kernel, 'same');
imshow(output, []);
See my attached manual convolution, though I don't recommend it. It's mainly for students who are not allowed to use built-in functions.
The theory for the -1, 17 thing is that it's the average gradient around the 8 directions (which gives a flat, harsh, Laplacian edge detection image), plus 9 in the center to add back in the original image so that the result looks like a edge enhanced image rather than a pure edge detection image. If you need more explanation on the theory, ask.

Community Treasure Hunt

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

Start Hunting!

Translated by