CLAHE performs adaptive histogram equalization to enhance
the contrast of an image. Unlike regular histogram equalization
(histEq), CLAHE first divides the image into small blocks
called "tiles" and performs histogram equalization on each of these tiles.
To reduce noise amplification contrast limiting is also applied: if any
histogram bin is above the specified contrast limit, those pixels are
clipped and distributed uniformly to other bins before applying histogram
equalization. After equalization, to remove artifacts in tile borders,
bilinear interpolation is applied.
Usage
CLAHE(image, clip_limit = 40, n_tiles = c(8, 8), target = "new")Arguments
- image
An
Imageobject.- clip_limit
A numeric value representing the contrast limit above which pixels are clipped and distributed uniformly to other bins before applying histogram equalization on the tiles.
- n_tiles
A vector with 2 elements representing the number of tiles along the width and height of the image (default:
c(8, 8)).- target
The location where the results should be stored. It can take 3 values:
- "new":
a new
Imageobject is created and the results are stored inside (the default).- "self":
the results are stored back into
image(faster but destructive).- An
Imageobject: the results are stored in another existing
Imageobject. This is fast and will not replace the content ofimagebut will replace that oftarget. Note that iftargetdoes not have the same number of channels and bit depth asimage, an error will be thrown.
Value
If target="new", the function returns an Image
object. If target="self", the function returns nothing and modifies
image in place. If target is an Image object,
the function returns nothing and modifies that Image object in
place.
Author
Simon Garnier, garnier@njit.edu
Examples
balloon <- image(system.file("sample_img/balloon1.png", package = "Rvision"))
balloon_Lab <- changeColorSpace(balloon, "Lab")
L <- extractChannel(balloon_Lab, 1)
clahe <- CLAHE(L, 1, c(2, 2))
insertChannel(balloon_Lab, 1, clahe)
#> NULL
balloon_contrast <- changeColorSpace(balloon_Lab, "BGR")