Equalization
类keras.layers.Equalization(value_range=(0, 255), bins=256, data_format=None, **kwargs)
用于对图像通道执行直方图均衡化的预处理层。
直方图均衡化是一种通过有效分散最常见的强度值来调整图像强度以增强对比度的技术。此层以通道为单位应用均衡化,这可以提高图像中细节的可见性。
此层适用于灰度图像和彩色图像,对每个颜色通道独立执行均衡化。在推理时,均衡化会一致地应用。
注意:此层可以在 tf.data
管道中使用(与您使用的后端无关)。
参数
[0, 255]
。如果输入图像已缩放,请使用适当的范围(例如,[0.0, 1.0]
)。均衡化将缩放到此范围,并且输出值将相应地剪裁。输入形状
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)