module

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}"
Source
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)
Source
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 image
  • tile_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)
Source