Contrast Limited Adaptive Histogram Equalization
Source:R/layers-preprocessing.R
layer_contrast_limited_adaptive_histogram_equalization.RdContrast Limited Adaptive Histogram Equalization (CLAHE) is a variant of adaptive histogram equalization that avoids over-amplifying contrast. It operates on small image regions called tiles rather than on the entire image, then combines neighboring tiles with bilinear interpolation to remove artificial boundaries. This can improve image contrast.
Arguments
- object
Object to compose the layer with. A tensor, array, or sequential model.
- value_range
Two numbers giving the lower and upper limits of input values. Defaults to
c(0, 255).- clip_limit
Number that limits noise amplification in near-constant regions. Defaults to 4.
- tile_grid_size
Two integers,
(height, width), giving the number of tiles into which to divide the image. Defaults toc(8, 8).- data_format
String, one of
"channels_last"(default) or"channels_first". The ordering of the dimensions in the inputs."channels_last"corresponds to inputs with shape(batch, height, width, channels)while"channels_first"corresponds to inputs with shape(batch, channels, height, width).- ...
For forward/backward compatibility.
Value
The return value depends on the value provided for the first argument.
If object is:
a
keras_model_sequential(), then the layer is added to the sequential model (which is modified in place). To enable piping, the sequential model is also returned, invisibly.a
keras_input(), then the output tensor from callinglayer(input)is returned.NULLor missing, then aLayerinstance is returned.
Details
Note: This layer computes histograms using backend one-hot operations, which can be highly memory intensive. Large batches or high-resolution images can lead to high memory consumption or out-of-memory errors.
Examples
image <- op_reshape(op_arange(16, dtype = "float32"), c(1, 4, 4, 1))
output <- image |>
layer_contrast_limited_adaptive_histogram_equalization(
value_range = c(0, 15),
tile_grid_size = c(2, 2)
)
shape(output)See also
Other image preprocessing layers: layer_aug_mix() layer_auto_contrast() layer_center_crop() layer_cut_mix() layer_equalization() layer_max_num_bounding_boxes() layer_mix_up() layer_rand_augment() layer_random_color_degeneration() layer_random_color_jitter() layer_random_elastic_transform() layer_random_erasing() layer_random_gaussian_blur() layer_random_grayscale() layer_random_hue() layer_random_invert() layer_random_perspective() layer_random_posterization() layer_random_saturation() layer_random_sharpness() layer_random_shear() layer_rescaling() layer_resizing() layer_solarization()
Other preprocessing layers: layer_aug_mix() layer_auto_contrast() layer_category_encoding() layer_center_crop() layer_cut_mix() layer_discretization() layer_equalization() layer_feature_space() layer_hashed_crossing() layer_hashing() layer_integer_lookup() layer_max_num_bounding_boxes() layer_mel_spectrogram() layer_mix_up() layer_normalization() layer_rand_augment() layer_random_brightness() layer_random_color_degeneration() layer_random_color_jitter() layer_random_contrast() layer_random_crop() layer_random_elastic_transform() layer_random_erasing() layer_random_flip() layer_random_gaussian_blur() layer_random_grayscale() layer_random_hue() layer_random_invert() layer_random_perspective() layer_random_posterization() layer_random_rotation() layer_random_saturation() layer_random_sharpness() layer_random_shear() layer_random_translation() layer_random_zoom() layer_rescaling() layer_resizing() layer_solarization() layer_stft_spectrogram() layer_string_lookup() layer_text_vectorization()
Other layers: Layer() layer_activation() layer_activation_elu() layer_activation_leaky_relu() layer_activation_parametric_relu() layer_activation_relu() layer_activation_softmax() layer_activity_regularization() layer_adaptive_average_pooling_1d() layer_adaptive_average_pooling_2d() layer_adaptive_average_pooling_3d() layer_adaptive_max_pooling_1d() layer_adaptive_max_pooling_2d() layer_adaptive_max_pooling_3d() layer_add() layer_additive_attention() layer_alpha_dropout() layer_attention() layer_aug_mix() layer_auto_contrast() layer_average() layer_average_pooling_1d() layer_average_pooling_2d() layer_average_pooling_3d() layer_batch_normalization() layer_bidirectional() layer_category_encoding() layer_center_crop() layer_concatenate() layer_conv_1d() layer_conv_1d_transpose() layer_conv_2d() layer_conv_2d_transpose() layer_conv_3d() layer_conv_3d_transpose() layer_conv_lstm_1d() layer_conv_lstm_2d() layer_conv_lstm_3d() layer_cropping_1d() layer_cropping_2d() layer_cropping_3d() layer_cut_mix() layer_dense() layer_depthwise_conv_1d() layer_depthwise_conv_2d() layer_discretization() layer_dot() layer_dropout() layer_einsum_dense() layer_embedding() layer_equalization() layer_feature_space() layer_flatten() layer_flax_module_wrapper() layer_gaussian_dropout() layer_gaussian_noise() layer_global_average_pooling_1d() layer_global_average_pooling_2d() layer_global_average_pooling_3d() layer_global_max_pooling_1d() layer_global_max_pooling_2d() layer_global_max_pooling_3d() layer_group_normalization() layer_group_query_attention() layer_gru() layer_hashed_crossing() layer_hashing() layer_identity() layer_integer_lookup() layer_jax_model_wrapper() layer_lambda() layer_layer_normalization() layer_lstm() layer_masking() layer_max_num_bounding_boxes() layer_max_pooling_1d() layer_max_pooling_2d() layer_max_pooling_3d() layer_maximum() layer_mel_spectrogram() layer_minimum() layer_mix_up() layer_multi_head_attention() layer_multiply() layer_normalization() layer_permute() layer_rand_augment() layer_random_brightness() layer_random_color_degeneration() layer_random_color_jitter() layer_random_contrast() layer_random_crop() layer_random_elastic_transform() layer_random_erasing() layer_random_flip() layer_random_gaussian_blur() layer_random_grayscale() layer_random_hue() layer_random_invert() layer_random_perspective() layer_random_posterization() layer_random_rotation() layer_random_saturation() layer_random_sharpness() layer_random_shear() layer_random_translation() layer_random_zoom() layer_repeat_vector() layer_rescaling() layer_reshape() layer_resizing() layer_reversible_embedding() layer_rms_normalization() layer_rnn() layer_separable_conv_1d() layer_separable_conv_2d() layer_simple_rnn() layer_solarization() layer_spatial_dropout_1d() layer_spatial_dropout_2d() layer_spatial_dropout_3d() layer_spectral_normalization() layer_stft_spectrogram() layer_string_lookup() layer_subtract() layer_text_vectorization() layer_tfsm() layer_time_distributed() layer_torch_module_wrapper() layer_unit_normalization() layer_upsampling_1d() layer_upsampling_2d() layer_upsampling_3d() layer_zero_padding_1d() layer_zero_padding_2d() layer_zero_padding_3d() rnn_cell_gru() rnn_cell_lstm() rnn_cell_simple() rnn_cells_stack()