等化層

[原始碼]

Equalization 類別

keras.layers.Equalization(value_range=(0, 255), bins=256, data_format=None, **kwargs)

用於圖像通道上直方圖等化的預處理層。

直方圖等化是一種調整圖像強度以增強對比度的技術,其方法是有效地分散最頻繁的強度值。此層在逐通道的基礎上應用等化,這可以提高圖像中細節的能見度。

此層適用於灰階和彩色圖像,並在每個顏色通道上獨立執行等化。在推論時,等化會一致地應用。

注意: 此層可以安全地在 tf.data 管道中使用(與您使用的後端無關)。

引數

  • value_range:可選的 2 個浮點數的列表/元組,用於指定輸入資料值的下限和上限。預設值為 [0, 255]。如果輸入圖像已縮放,請使用適當的範圍(例如,[0.0, 1.0])。等化將縮放到此範圍,並且輸出值將相應地被裁剪。
  • bins:整數,指定用於等化的直方圖 bin 的數量。預設值為 256,適用於 8 位元圖像。較大的值可以提供更精細的強度重新分佈。

輸入形狀

3D(未批次)或 4D(批次)張量,形狀為:(..., height, width, channels),採用 "channels_last" 格式,或 (..., channels, height, width),採用 "channels_first" 格式。

輸出形狀

3D(未批次)或 4D(批次)張量,形狀為:(..., target_height, target_width, channels),或 (..., channels, target_height, target_width),採用 "channels_first" 格式。

範例

# Create an equalization layer for standard 8-bit images
equalizer = keras.layers.Equalization()

# An image with uneven intensity distribution
image = [...] # your input image

# Apply histogram equalization
equalized_image = equalizer(image)

# For images with custom value range
custom_equalizer = keras.layers.Equalization(
    value_range=[0.0, 1.0],  # for normalized images
    bins=128  # fewer bins for more subtle equalization
)
custom_equalized = custom_equalizer(normalized_image)