This function takes a size vector [m n] and a connectivity scalar (4 by default, or 8) and returns a p-by-2 array containing the linear indices of all pairs of neighboring elements in an m-by-n array. Note that p does not equal (m*n*conn) because border elements do not have as many neighbors as interior elements.
I created this function because I needed to transform an image into a graph, with edges in the graph for neighboring pixels only. This function allows me to quickly get the linear indices for all edges in that graph.
This function was inspired by a blog post from Steve Eddins found here:
ind = neighbor2ind([3,4]);
I = imread('cameraman.tif');
ind = neighbor2ind(size(I),8);
Matthew Eicholtz (2022). neighbor2ind (https://www.mathworks.com/matlabcentral/fileexchange/53444-neighbor2ind), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!