Sliding window in a sparse 3d volume

4 views (last 30 days)
Orly amsalem
Orly amsalem on 8 Apr 2013
Hi, I have a 3d (MxNxL) matrix, and I want to compute for a list of x,y,z (actually all x,y, and a certain z, not for each x,y,z!) a function over a i*j*k window.
The sliding window should be of size(i*j*k) but not all values in the window are the neighborhood, for example, the window can be a sphere of radius r that is bound in that square window, or it could be a cylinder or some kind of other shape.
The results I need is a MxN matrix (2D, so no convn), where for each x,y location I have the result of the function applied on x,y 3d neighborhood. MxN could be very large, I don't want to do it with loops.
Example for a window I want to slide over the 3d volume:
[x,y,z] = meshgrid(1:r,1:r,1:r);
xc = floor(r./2)+1;
yc = floor(r./2)+1;
zc = floor(r./2)+1;
sphere_window = (x-xc).^2 + (y-yc).^2 + (z-zc).^2 <= r.^2;
  7 Comments
Orly amsalem
Orly amsalem on 8 Apr 2013
The input is two 3d volumes and the input should be 2d matrix. Because I need the neighborhood to be 3d , but the function is performed for each x,y, not for each x,y,z
Orly amsalem
Orly amsalem on 8 Apr 2013
besides, I have no idea if it possible to do what I want with convolution...

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!