Detect Filarial Worms.
This procedure extracts the filarial worms from a complex microscopic image by eliminating progressively the other objects present in the image. The selection of the structures begins in the gray-scale level and, after a threshold, continues based on the object geometrical properties.
A microscopic gray-scale image, with two filarial worms, is read.
1. a = adreadgray('danaus.tif') 2. adshow(a)
The Close by Reconstruction Top-Hat operator is applied to regularize the image background.
1. from ia870 import iacloserecth 2. from ia870 import iasebox 3. 4. b = iacloserecth(a,iasebox(5)) 5. adshow(b)
Removing narrow objects
The gray-scale opening by the elementary cross is applied to remove narrow objects.
1. from ia870 import iaopen 2. 3. c = iaopen(b) 4. adshow(c)
Removing small objects
The gray-scale area open operator is applied to remove small objects.
1. from ia870 import iaareaopen 2. 3. t1 = time.time() 4. d = iaareaopen(c,200) 5. print time.time() - t1, 'seconds' 6. adshow(d)
The threshold operator is applied to extract a reduced set of structures that include the two worms present in the image.
1. e = (d >50) 2. adshow(e)
The objective of the sequence of transformations, that begin with the homotopic skeleton, is to eliminateg the structures that are not worms. The information used for the filtering is that the worms are longer than any other structure found.
1. from ia870 import iathin 2. 3. f = iathin(e) 4. adshow(f)
Elimination of short structures
The first 12 points of the skeleton branches, counting from their extremities, are eliminated. The structures that were not eliminated will be the markers for extracting the two worms.
1. from ia870 import iaendpoints 2. 3. g = iathin(f,iaendpoints(), 12) 4. adshow(g)
Extraction of the worms from their markers
The binary reconstruction operator is applied to reconstruct the binary image produced by the threshold from the marker image.
1. from ia870 import iainfrec 2. 3. h = iainfrec(g,e) 4. adshow(h)
The structures extracted are overlaid to the input gray-scale image.
1. from ia870 import iagshow 2. 3. adshow(iagshow(a,h))