logicRemoveInterior

Below is a demonstration of the features of the logicRemoveInterior function

Contents

clear; close all; clc;

Syntax

[Lb]=logicRemoveInterior(L);

Description

This function removes the interior entries for the input logic L. Interior entries are those fully surrounded by neighbours (e.g. in 3D all entries which are attached to a top, bottom, left, right, front, and a back neighbour). Vectors and n-dimensional arrays are supported.

Examples

Example 1: 1D logical treatment

L = false(12,1);
L(3:10)=1;
[Lb]=logicRemoveInterior(L);

[Lb]=logicRemoveInterior(L);
cFigure;
subplot(1,2,1);
imagesc(L);
axis tight; axis equal; colormap gray;

subplot(1,2,2);
imagesc(Lb);
axis tight; axis equal; colormap gray;
drawnow;
cFigure;
subplot(1,2,1);
imagesc(L);
axis tight; axis equal; colormap gray;

subplot(1,2,2);
imagesc(Lb);
axis tight; axis equal; colormap gray;
drawnow;

Example 2: 2D logical treatment

r=2;
n=25;
x=linspace(-1.5*r,1.5*r,n);
[X,Y]=ndgrid(x);
R = sqrt(X.^2+Y.^2);

L = R<=r;
[Lb]=logicRemoveInterior(L);
cFigure;
subplot(1,2,1);
imagesc(L);
axis tight; axis equal; colormap gray;

subplot(1,2,2);
imagesc(Lb);
axis tight; axis equal; colormap gray;
drawnow;

Example 3: 3D logical treatment

r=2;
n=25;
x=linspace(-1.5*r,1.5*r,n);
[X,Y,Z]=ndgrid(x);
R = sqrt(X.^2+Y.^2+Z.^2);

L = R<=r;
[Lb]=logicRemoveInterior(L);

%Force half to be zero so we can look inside
L(:,:,ceil(n/2):end)=0;
Lb(:,:,ceil(n/2):end)=0;
[F,V,C]=im2patch(L,L);
[Fb,Vb,Cb]=im2patch(Lb,L);

cFigure;
subplot(1,2,1);
gpatch(F,V,C);
axisGeom; colormap gray; clim([0 1]);
camlight headlight;

subplot(1,2,2);
gpatch(Fb,Vb,Cb);
axisGeom; colormap gray; clim([0 1]);
camlight headlight;
drawnow;

GIBBON www.gibboncode.org

Kevin Mattheus Moerman, [email protected]

GIBBON footer text

License: https://github.com/gibbonCode/GIBBON/blob/master/LICENSE

GIBBON: The Geometry and Image-based Bioengineering add-On. A toolbox for image segmentation, image-based modeling, meshing, and finite element analysis.

Copyright (C) 2006-2023 Kevin Mattheus Moerman and the GIBBON contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.