Apply a Local Averaging Mask
Ältere Kommentare anzeigen
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.
Akzeptierte Antwort
Weitere Antworten (1)
Image Analyst
am 27 Feb. 2018
Bearbeitet: Image Analyst
am 14 Aug. 2019
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.
Kategorien
Mehr zu Image Filtering and Enhancement finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!