How can I run a Low Pass Filter over a Digital Elevation Model to Reduce Noise?

6 vues (au cours des 30 derniers jours)
Jake Collins-May
Jake Collins-May le 27 Juil 2017
Modifié(e) : Chad Greene le 28 Juil 2017
I want to run an elevation profile tool over a Digital Elevation Model (DEM) in ArcGIS. The DEM is noisy so the profile returned is jagged. I am looking to run a Low Pass Filter over the DEM in order to "blur" it, reducing the noise, and smoothing the extracted profile.
The DEM is: 17997x8369 pixels 1 Band 32 bit floating point
The code I have been using to try and achieve this is:
I = imread('DEM.tif');
G = fspecial('gaussian',[5 5],2);
Ig = imfilter(I,G,'same');
I2 = im2double(Ig);
imwrite(I2, 'DEM_5_2.tif')
However this simply returns a black box. How would I go about running a low pass filter over this image correctly?
  2 commentaires
Shivam Raikundalia
Shivam Raikundalia le 28 Juil 2017
The script seems to work for me. Are you sure your original picture is correct?
Chad Greene
Chad Greene le 28 Juil 2017
If the issue is random noise, you may consider a moving median filter like medfilt2, which would remove outliers rather than spreading them out.

Connectez-vous pour commenter.

Réponses (1)

Chad Greene
Chad Greene le 28 Juil 2017
Modifié(e) : Chad Greene le 28 Juil 2017
It looks like imwrite will not write double to tiff format. Try something like
I2 = im2uint16(Ig);
imwrite(I2, 'DEM_5_2.tif')

Community Treasure Hunt

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

Start Hunting!

Translated by