Possible to apply filter2 to only values above a limit?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Josh
am 27 Feb. 2014
Kommentiert: Josh
am 6 Mär. 2014
I have an array which I'm attempting to filter with a Gaussian blur to smooth the surface and contour plots. Without any filtering, this is the resulting contour plot:

This code:
load 'A'
G=fspecial('gaussian',[5 5],2);
Af=filter2(G,A,'same');
contour(X,Y,A);
Gives the following contour plot:

As you can see, the contours are nicely smoothed, but the filter has blurred the transitions too much and shifted them wider and outwards.
My Question:
Is it possible to refer to just array elements above a certain value for the filtering?
I'm sure it must be and I'm just being stupid not figuring it out.
Cheers
0 Kommentare
Akzeptierte Antwort
Oliver Woodford
am 3 Mär. 2014
Compute the filtered version for all pixels, and simply replace the pixels above a certain value with their filtered value:
G = fspecial('gaussian',[5 5],2);
Af = filter2(G,A,'same');
M = A > thresh;
A(M) = Af(M);
contour(X,Y,A);
Weitere Antworten (1)
Siehe auch
Kategorien
Mehr zu Contour Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!