Possible to apply filter2 to only values above a limit?
조회 수: 1 (최근 30일)
이전 댓글 표시
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/157667/image.png)
This code:
load 'A'
G=fspecial('gaussian',[5 5],2);
Af=filter2(G,A,'same');
contour(X,Y,A);
Gives the following contour plot:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/157669/image.png)
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
채택된 답변
Oliver Woodford
2014년 3월 3일
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);
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Contour Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!