[mmsupgen] [Up] [mmcthin] Thinning And Thickening

mmcthick
Image transformation by conditional thickening.

Synopsis

function y = mmcthick ( f , g , Iab , n , theta , DIRECTION )

Input

f Image Binary image
g Image Binary image
Iab Interval

Default: Interval for homotopic thickening

n Double Non-negative integer.

Default: Infinite (denoted by -1)

Number of iterations.

theta Double

Default: 45

Degrees of rotation: 45, 90, or 180.

DIRECTION String

Default: 'CLOCKWISE'

Direction of rotation: 'CLOCKWISE' or 'ANTI-CLOCKWISE'.

Output

y Image Binary image

Description

mmcthick creates the binary image y by performing a thickening of the binary image f conditioned to the binary image g. The number of iterations of the conditional thickening is n and in each iteration the thickening is characterized by rotations of theta of the interval Iab.

Examples

Pseudo convex hull
f=mmreadgray('blob2.tif');
mmshow(f);
t=mmse2hmt(mmbinary([0,0,0;0,0,1;1,1,1]),...
                          mmbinary([0,0,0;0,1,0;0,0,0]));
Warning: converting image from double to int32
Warning: converting image from double to int32
mmintershow(t)
ans =
. . . 
. 0 1 
1 1 1
f1=mmthick(f,t,40); % The thickening makes the image border grow
mmshow(f1);
f f1
f2=mmcthick(f,mmneg(mmframe(f)),t,40); % conditioning to inner pixels
fn=mmcthick(f,mmneg(mmframe(f)),t); %pseudo convex hull
mmshow(f2);
mmshow(fn,f);
f2 fn,f

Equation

Algorithm

function y = mmcthick_equ( f, g, Iab, n, theta, DIRECTION )
  y = f;
  for i=1:n
    for alpha=0:theta:360-theta
      Iab = mminterot(Iab, alpha, DIRECTION);
      y = mmintersec(mmunion(y,mmsupgen(y,Iab)),g);
    end;
  end; 

See also

mmfreedom Control automatic data type conversion.
mmthick Image transformation by thickening.
mmhomothick Interval for homotopic thickening.
mmse2hmt Create a Hit-or-Miss Template (or interval) from a pair of structuring elements.
[mmsupgen] [Up] [mmcthin]