morphology {EBImage}R Documentation

Perform morphological operations on images

Description

Functions to perform morphological operations on binary images.

Usage

  dilate(x, kern)
  erode(x, kern)
  opening(x, kern)
  closing(x, kern)

  makeBrush(size, shape=c('box', 'disc', 'diamond', 'gaussian'), step=TRUE, sigma=0.3)

Arguments

x

An Image object or an array. x is considered as a binary image, whose pixels of value 0 are considered as background ones and other pixels as foreground ones.

kern

An Image object or an array, containing the structuring element. kern is considered as a binary image, whose pixels of value 0 are considered as background ones and other pixels as foreground ones.

size

A numeric containing the size of the brush, in pixels.

shape

A character vector indicating the shape of the brush. Can be box, disc, diamond or gaussian. Default is box.

step

a logical indicating if the brush is binary. Default is TRUE. The argument is relevant only for the disc and diamond shapes.

sigma

An optional numeric containing the standard deviation of the Gaussian shape. Default is 0.3.

Details

dilate applies the mask positioning its centre over every background pixel (0), every pixel which is not covered by the mask is reset to foreground (1).

erode applies the mask positioning its centre over every foreground pixel (!=0), every pixel which is not covered by the mask is reset to background (0).

opening is an erosion followed by a dilation and closing is a dilation followed by an erosion.

makeBrush generates brushes of various sizes and shapes that can be used as structuring elements.

Value

dilate, erode, opening and closing return the transformed Image object or array, after the corresponding morphological operation.

makeBrush generates a 2D matrix containing the desired brush.

Author(s)

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

Examples

	
    x = readImage(system.file("images", "shapes.png", package="EBImage"))
    if (interactive()) display(x)
    kern = makeBrush(5, shape='diamond')
    if (interactive()) display(kern, title='Structuring element')
    if (interactive()) display(erode(x, kern), title='Erosion of x')
    if (interactive()) display(dilate(x, kern), title='Dilatation of x')

    ## makeBrush 
    x = makeBrush(100, shape='diamond')
    if (interactive()) display(x, title="makeBrush(100, shape='diamond')")
    x = makeBrush(100, shape='disc', step=FALSE)
    if (interactive()) display(x, title="makeBrush(100, shape='disc', step=FALSE)")
    x = makeBrush(100, shape='gaussian', sigma=10)
    if (interactive()) display(2000*x, title="makeBrush(100, shape='gaussian', sigma=10)")

[Package EBImage version 3.10.0 Index]