drawtext {EBImage} | R Documentation |
The family of functions to draw primitives on images. At the moment, there is only one functions out of the planned family to draw text.
## S4 methods for signatures 'img=Image,xy=numeric,label=character' ## and 'img=Image,xy=matrix,label=character' and ## S4 method for signature 'Image, list, list': drawtext(img, xy, labels, font, col, ...) drawfont(family=switch(.Platform$OS.type, windows="Arial", "helvetica"), style="n", size=14, weight=200, antialias=TRUE)
img |
An object of Image . With indexed images,
please ensure that the color range is in [0,1] . |
xy |
(x,y) coordinates of labels. For single frames a matrix with
the first column being x and second y or a corresponding numeric
vector as it would be used to construct such a matrix. For multiple frames,
a list of corresponding matrices/vectors. |
labels |
A character vector of labels to be output. For multiple frames a list of such characters. |
font |
An S3 object of class DrawFont as returned by
drawfont . If omitted, the drawfont functions is called internally
to obtain the default values. |
col |
A character vector of font colors. One per frame, recycled between frames if required. |
... |
Reserved. |
family |
A character value for the font family to use. On Linux/UNIX
machines one can try to use helvetica , times , courier
and symbol . On Windows machines, one can specify installed TrueType
fonts, like Arial . |
style |
A character value for the font style to use. Can be
specified by providing the first letter only. Supported are: normal
(default), italic , oblique . |
size |
A numeric value for the font size. |
weight |
A numeric value for the font weight (bold font). Supported values between 100 and 900. |
antialias |
A logical value for whether the font should be anti-aliased. |
An object of Image
even if the supplied img
was of
any derived class. If supplied was an IndexedImage
, ensure
that it was normalized to the range $[0,1]$ before calling drawtext
:
the function is for annotation purposes only and using it with IndexedImage
's
is likely to destroy indexing information!
Oleg Sklyar, osklyar@ebi.ac.uk, 2007
## FIXME: This example is currently excluded from MacOS builds as it fails in ## ImageMagick string assertion. Although I tried to find the reason for ## the problem, I do not have a test environment (MacOS). Please test it and ## report what goes wrong here and at which stage. if ( length(grep("apple", Sys.getenv("R_PLATFORM"))) == 0 ) { ## load images f <- paste( system.file(package="EBImage"), "images/Gene1_G.tif", sep="/" ) ii = normalize(readImage(f), separate=TRUE) ## segment mask = thresh(ii, 25, 25, 0.02) mk3 = morphKern(3) mk5 = morphKern(5) mask = dilate(erode(closing(mask, mk5), mk3), mk5) ## index objects in images and remove bad ones io = watershed( distmap(mask), 1.5, 1) ft = hullFeatures(io) mf = moments(io, ii) ## need these for intensity and size for ( i in seq_along(ft) ) ft[[i]] = cbind(ft[[i]], mf[[i]]) io = rmObjects(io, lapply(ft, function(x) which(x[,"h.s"] < 150 | x[,"int"] < 50 | 0.3 * x[,"h.p"] < x[,"h.edge"] ) )) ft = hullFeatures(io) ## get centres of objects (list, for ii is a stack of 4) xy <- lapply(ft, function(x) x[,1:2]) # create labels for objects (list, for ii is a stack of 4) labels <- lapply(xy, function(x) as.character(1:nrow(x))) ## set font properties: semi bold f <- drawfont() f$weight=600 ## draw annotations, recycle 2 colours between 4 images annot <- drawtext(channel(ii,"rgb"), xy, labels, font=f, col=c("#F0B769","#ACEE3F")) if (interactive()) display(annot) }