Problem 852. Index of neighbor pixel with steepest gradient

Unlike in various applications, where the gradient of a two dimensional matrix is calculated in x and y direction, the gradient of a digital elevation model (DEM) is usually returned as the steepest gradient. The steepest gradient is the largest downward slope of a pixel to one of its eight neighbors.

In this problem, your task will be to return the linear index of the steepest neighbor for each pixel in a gridded DEM. Pixels that don't have downward neighbors should receive the index value zero.

An example should help. The DEM is

dem = [1 5 9; ...
       4 5 6; ...
       8 7 3];

The result should be

IX  = [0 1 4; ...
       1 1 9; ...
       2 9 0];

The results may not be unique, but the test cases have been built so that this is not a problem. The spatial resolution of the dem is dx=1 and dy=1. Note that the diagonal distance is hypot(dx,dy).

Solution Stats

62.5% Correct | 37.5% Incorrect
Last solution submitted on Nov 27, 2014

Problem Comments

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!