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
Image
object.- 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
Image
object is created and the results are stored inside (the default).- "self":
the results are stored back into
image
(faster but destructive).- An
Image
object: the results are stored in another existing
Image
object. This is fast and will not replace the content ofimage
but will replace that oftarget
. Note that iftarget
does 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")