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

45.16% Correct | 54.84% Incorrect
Last Solution submitted on Jun 08, 2020

Problem Comments