stackObjects {EBImage} | R Documentation

## Places detected objects into an image stack

### Description

Places detected objects into an image stack.

### Usage

      stackObjects(x, ref, index, combine=TRUE, rotate, bg.col='black', ext, centerby, rotateby)

### Arguments

`x` | An `Image` object or an array containing object masks. Object masks are sets of pixels with the same unique integer value.
`ref` | An `Image` object or an array, containing the intensity values of the objects.
`combine` | If `x` contains multiple images, specifies if the resulting list of image stacks with individual objects should be combined using `combine` into a single image stack.
`bg.col` | Background pixel color.
`ext` | A numeric controlling the size of the output simage. If missing, `ext` is estimated from data. See details.
`index, rotate, centerby, rotateby` | Deprecated.

### Details

`stackObjects` creates a set of `nbobj` images of size (`2*ext+1`, `2*ext+1`), where `nbobj` is the number of objects in `x`, and places each object of `x` in this set.

If not specified, `ext` is estimated using the 95% quantile of 2*sqrt(`g.l1`), where `g.l1` is the semi-major axis descriptor extracted from `hullFeatures`, taken over all the objects of the image `x`.

### Value

An `Image` object containing the stacked objects contained in `x`. If `x` contains multiple images and if `combine` is `TRUE`, `stackObjects` returns a list of `Image` objects.

### Author(s)

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

### See Also

`combine`, `tile`, `hullFeatures`

### Examples

      ## simple example
      x = readImage(system.file('images', 'shapes.png', package='EBImage'))
      x = x[110:512,1:130]
      y = bwlabel(x)
      if (interactive()) display(normalize(y), title='Objects')
      z = stackObjects(y, normalize(y))
      if (interactive()) display(z, title='Stacked objects')

      ## load images
      nuc = readImage(system.file('images', 'nuclei.tif', package='EBImage'))
      cel = readImage(system.file('images', 'cells.tif', package='EBImage'))
      img = rgbImage(green=cel, blue=nuc)
      if (interactive()) display(img, title='Cells')

      ## segment nuclei
      nmask = thresh(nuc, 10, 10, 0.05)
      nmask = opening(nmask, makeBrush(5, shape='disc'))
      nmask = fillHull(bwlabel(nmask))

      ## segment cells, using propagate and nuclei as 'seeds'
      ctmask = opening(cel>0.1, makeBrush(5, shape='disc'))
      cmask = propagate(cel, nmask, ctmask)

      ## using paintObjects to highlight objects
      res = paintObjects(cmask, img, col='#ff00ff')
      res = paintObjects(nmask, res, col='#ffff00')
      if (interactive()) display(res, title='Segmented cells')

      ## stacked cells
      st = stackObjects(cmask, img)
      if (interactive()) display(st, title='Stacked objects')

[Package EBImage version 3.0.5 Index]