rmObjects {EBImage} | R Documentation

## Object removal and re-indexation

### Description

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.

### Usage

      rmObjects(x, index, reenumerate = TRUE)

      reenumerate(x)

### Arguments

`x` | An `Image` object in `Grayscale` color mode or an array containing object masks. Object masks are sets of pixels with the same unique integer value.
`index` | A numeric vector (or a list of vectors if `x` contains multiple frames) containing the indexes of objects to remove in the frame.
`reenumerate` | Logical, should all the objects in the image be re-indexed afterwards (default).

### Value

An `Image` object or an array, containing the new objects.

### Author(s)

Oleg Sklyar, osklyar@ebi.ac.uk, 2006-2007

### See Also

`bwlabel`, `watershed`

### Examples

      ## 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]

[Package EBImage version 4.20.1 Index]