CrImage::Util::HistogramOps
Class methods
compute(src : Image) : Histogram
Computes the histogram of an image's luminance values.
Parameters:
src: The source image
Returns: A Histogram object with 256 bins (0-255)
Example:
img = CrImage::PNG.read("photo.png")
hist = CrImage::Util::HistogramOps.compute(img)
puts "Mean brightness: #{hist.mean}"
puts "Median: #{hist.median}"
equalize(src : Image) : Image
Applies histogram equalization to enhance image contrast.
Histogram equalization redistributes pixel intensities to use the full dynamic range, improving contrast in low-contrast images.
Parameters:
src: The source image
Returns: A new Image with equalized histogram
Example:
img = CrImage::PNG.read("low_contrast.png")
enhanced = CrImage::Util::HistogramOps.equalize(img)
equalize_adaptive(src : Image, tile_size : Int32 = 8, clip_limit : Float64 = 2.0) : Image
Applies adaptive histogram equalization (CLAHE - Contrast Limited AHE).
CLAHE divides the image into tiles and applies histogram equalization to each tile separately, with contrast limiting to prevent over-amplification of noise. Results are interpolated for smooth transitions.
Parameters:
src: The source imagetile_size: Size of tiles for local equalization (default: 8)clip_limit: Contrast limiting factor (default: 2.0, range: 1.0-4.0)
Returns: A new Image with adaptive equalization
Example:
img = CrImage::PNG.read("photo.png")
enhanced = CrImage::Util::HistogramOps.equalize_adaptive(img)