erode edit page

do morphological erosion of pixels based on neighbor counts

Syntax

ebsd = erode(ebsd,0)
ebsd = erode(ebsd,2,'titanium')
ebsd = erode(ebsd,1,{'a' 'b' 'notIndexed'})

Input

ebsd EBSD
counts upper threshold of same phase pixels around each pixel to permit erosion
phase phase name, cell or string

Output

ebsd EBSD without the eroded pixels

Example

mtexdata small
plot(ebsd); hold on
plot(ebsd('n'),'FaceColor','k'); hold off;
mtexTitle('original');  nextAxis
ebsd = EBSD (y↑→x)
 
 Phase  Orientations     Mineral         Color  Symmetry  Crystal reference frame
     0    1197 (32%)  notIndexed                                                 
     1    1952 (52%)  Forsterite  LightSkyBlue       mmm                         
     2    290 (7.8%)   Enstatite  DarkSeaGreen       mmm                         
     3    282 (7.6%)    Diopside     Goldenrod     12/m1       X||a*, Y||b*, Z||c
 
 Properties: bands, bc, bs, error, mad
 Scan unit : um
 X x Y x Z : [33000, 36000] x [4500, 7500] x [0, 0]
 Normal vector: (0,0,1)

erode isolated, nonIndexed points

ebsd = erode(ebsd,0);
plot(ebsd); hold on
plot(ebsd('n'),'FaceColor','k'); hold off;
mtexTitle('no single nonIndexed pixels');  nextAxis

erode isolated, nonIndexed points

for i=1:10
ebsd = erode(ebsd,1,{'n' 'D' 'E'});
end
plot(ebsd); hold on
plot(ebsd('n'),'FaceColor','k'); hold off;
mtexTitle('no n,D,E \(\le\) 1 neighbors, 10 iter'); nextAxis

erode isolated, nonIndexed points

for i=1:10
ebsd = erode(ebsd,2,{'n' 'D' 'E','F'});
ebsd = ebsd.fill;
end
plot(ebsd); hold on
plot(ebsd('n'),'FaceColor','k'); hold off;
mtexTitle('no n,D,E \(\le\) 2 neighbors, filled,10 iter');