Blended 3D poly2mask

Version 1.3.0.0 (2,63 ko) par Sven
Creates a 3D mask "lofted" or "tweened" (blended smoothly) from a set of planar polygons.
1K téléchargements
Mise à jour 12 fév. 2013

Afficher la licence

If you have two polygons and want two masks, you can just call poly2mask separately on each polygon. Now imagine these two 2D polygons are hovering at Z=1 and Z=10, and you want to make a mask *volume* along the slices Z=1:10. For that, you want blendedPolyMask.

BLENDEDPOLYMASK Creates a 3D mask "lofted" from a set of polygons
BW = BLENDEDPOLYMASK(C,X,Y,Z) returns a logical volume of size equal to
[length(Y) length(X) length(Z)]. C is a cell array of N-by-3 XYZ
coordinates specifying individual (planar) XY polygons. The first
Z-coordinate of each polygon in C specifies its planar location. X, Y
and Z are vectors specifying pixel locations in the 3D output volume.
The output BW is a "loft" from one polygon to the next. Interpolation
between polygons is done via the distance function of the masks at each
neighbouring polygon. The IP toolbox BWDIST function is required.

Example:
[circXY(:,1),circXY(:,2)] = pol2cart(linspace(0,2*pi,50)', 1);
sqXY = [-1 -1;1 -1;1 1;-1 1; -1 -1];
C = {[sqXY*5 ones(5,1)] % Start with a small square
[circXY*40 ones(50,1)*30] % Blend to a large circle
[sqXY*20 ones(5,1)*65] % Blend to a large square
[circXY*10 ones(50,1)*99]}; % Blend to a small circle
X = linspace(-40, 40, 200);
Y = linspace(-40, 40, 200);
Z = linspace(0, 100, 400);
BW = blendedPolymask(C,X,Y,Z);
figure, patch(isosurface(X,Y,Z,BW,0.5),'FaceColor','g','EdgeColor','none','FaceAlpha',0.5)
view(3), camlight, hold on, axis image
cellfun(@(x)patch(x(:,1),x(:,2),x(:,3),'b'),C)

Citation pour cette source

Sven (2024). Blended 3D poly2mask (https://www.mathworks.com/matlabcentral/fileexchange/37863-blended-3d-poly2mask), MATLAB Central File Exchange. Récupéré le .

Compatibilité avec les versions de MATLAB
Créé avec R2012a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur 3-D Volumetric Image Processing dans Help Center et MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Publié le Notes de version
1.3.0.0

Fixed bug where any curveZlocations exactly hitting a usedBWmask used an inappopriate mask

1.2.0.0

Minor bug fixed whereby query levels outside the range of curves would incorrectly return the first curve mask

1.1.0.0

Some typos in the help file have been cleared up to reflect the true input order of arguments.

1.0.0.0