[Top] [Up] [Prev] [Next] [Up] [Basic Concepts] [Demonstrations] [Functions] SDC Morphology Toolbox V1.1 15Jan02

mmdpieces - Classify two dimensional pieces.


Description
The input image is a binary image typically found in industrial automation applications. It has three types of objects: rings, nails and T-pins. Our procedure for identification of these classes of objects is based on thickening, thinning and reconstruction.

Reading

The binary image of the pieces is read.

a = mmreadgray('pieces_bw.tif');
mmshow(a);
image
(a)

Contour noise reduction

An homotopic thickening is applied to reduce contour noise.

seA = mmimg2se(mmbinary(uint8([0 1 0;1 0 1;0 0 0])));
seB = mmimg2se(mmbinary(uint8([1 1 1;1 0 1;1 1 1])));
iAB = mmse2interval(seA,seB);
mmintershow(iAB)

ans =
. 1 .
1 0 1
. . . 
b = mmthick(a, iAB);
mmshow(b);
image
(b)

Skeleton

The homotopic skeleton by thinning is created.

c = mmthin(b);
mmshow(c);
image
(c)

Skeleton pruning

The open lines of the skeleton are pruned by the end point thinning. The remaining skeleton components will be loops, identifying the rings.

d = mmthin(c,mmendpoints);
mmshow(c,d);
image
(c,d)

Detect rings

Extraction of the rings by reconstruction of the thicked image from the filtered skeleton.

e = mminfrec(d,b);
mmshow(e);
image
(e)

Rings in the input image

Restriction of the objects detected to the input-image.

f = mmintersec(a,e);
mmshow(f);
image
(f)

Skeleton of the remaining objects

It eliminates the skeleton of the rings.

g = mmsubm(c,e);
mmshow(g);
image
(g)

End points filtering

It removes sucessively 4 end-points to let T junctions just on T-pins.

h = mmthin(g, mmendpoints, 4);
mmshow(h);
image
(h)

T-pins markers

It detects triple points, applying the union of matchings with two templates. These points will identify (mark) the T-pins.

seA1 = mmimg2se(mmbinary(uint8([0 1 0; 0 1 0; 1 0 1])));
seB1 = mmimg2se(mmbinary(uint8([1 1 1; 0 1 0; 1 0 1])));
seA2 = mmimg2se(mmbinary(uint8([0 1 0; 1 1 1; 0 0 0])));
seB2 = mmimg2se(mmbinary(uint8([0 1 0; 1 1 1; 1 0 1])));
i1 = mmsupcanon(h, mmse2interval(seA1,seB1));
i2 = mmsupcanon(h, mmse2interval(seA2,seB2));
i = mmunion(i1,i2);
mmshow(h,mmdil(i,mmsedisk(2)));
image
(h,mmdil(i,mmsedisk(2)))

Detect T-pins

Detection of the T-pins by reconstruction of the ticked image from the T-pin markers.

j = mminfrec(i,b,mmsebox);
mmshow(j);
image
(j)

T-pins in the input image

Restriction of the objects detect to the input image

k = mmintersec(a,j);
mmshow(k);
image
(k)

Detect nails

The nails are imediatly detected by the subtration of the images of the rings and T-pints from the input image.

l = mmsubm(mmsubm(a,f),k);
mmshow(l);
image
(l)

Color composition

The result of the classification is presented in a pseudo color image.

m = mmgray(f,'uint8',1);
n = mmgray(k,'uint8',2);
o = mmgray(l,'uint8',3);
p = mmunion(m,n,o);
mmlblshow(p);
image
(p)

[Top] [Up] [Prev] [Next] [Up] [Basic Concepts] [Demonstrations] [Functions] Valid XHTML 1.0!
Copyright (c) 1998-2002 by SDC Information Systems