Object removal and re-indexation
The rmObjects
functions deletes objects from an image
by setting their pixel intensity values to 0.
reenumerate
re-enumerates all objects in an image from 0 (background)
to the actual number of objects.
rmObjects(x, index, reenumerate = TRUE) reenumerate(x)
x |
An |
index |
A numeric vector (or a list of vectors if |
reenumerate |
Logical, should all the objects in the image be re-indexed afterwards (default). |
An Image
object or an array, containing the new objects.
Oleg Sklyar, osklyar@ebi.ac.uk, 2006-2007
## make objects x = readImage(system.file('images', 'shapes.png', package='EBImage')) x = x[110:512,1:130] y = bwlabel(x) ## number of objects found max(y) display(normalize(y), title='Objects') ## remove every second letter objects = list( seq.int(from = 2, to = max(y), by = 2), seq.int(from = 1, to = max(y), by = 2) ) z = rmObjects(combine(y, y), objects) display(normalize(z), title='Object removal') ## the number of objects left in each image apply(z, 3, max) ## perform object removal without re-enumerating z = rmObjects(y, objects, reenumerate = FALSE) ## labels of objects left unique(as.vector(z))[-1L] ## re-index objects z = reenumerate(z) unique(as.vector(z))[-1L]
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.