| stackObjects {EBImage} | R Documentation |
Places detected objects into an image stack.
stackObjects(x, ref, index, combine=TRUE, rotate, bg.col='black', ext, centerby, rotateby)
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. |
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.
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.
Oleg Sklyar, osklyar@ebi.ac.uk, 2006-2007
## 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')