mindspore.dataset.vision.RandomColorAdjust

class mindspore.dataset.vision.RandomColorAdjust(brightness=(1, 1), contrast=(1, 1), saturation=(1, 1), hue=(0, 0))[源代码]

随机调整输入图像的亮度、对比度、饱和度和色调。

说明

此操作默认通过 CPU 执行,也支持异构加速到 GPU 或 Ascend 上执行。

参数:
  • brightness (Union[float, Sequence[float]], 可选) - 亮度调整因子。不能为负。默认值: (1, 1) 。 如果是浮点数,则从 [max(0, 1-brightness), 1+brightness] 范围内统一选择因子。 如果它是一个序列,则代表是范围 [min, max],从此范围中选择调整因子。

  • contrast (Union[float, Sequence[float]], 可选) - 对比度调整因子。不能为负。默认值: (1, 1) 。 如果是浮点数,则从 [max(0, 1-contrast), 1+contrast] 范围内统一选择因子。 如果它是一个序列,则代表是范围 [min, max],从此范围中选择调整因子。

  • saturation (Union[float, Sequence[float]], 可选) - 饱和度调整因子。不能为负。默认值: (1, 1) 。 如果是浮点数,则从 [max(0, 1-saturation), 1+saturation] 范围内统一选择因子。 如果它是一个序列,则代表是范围 [min, max],从此范围中选择调整因子。

  • hue (Union[float, Sequence[float]], 可选) - 色调调整因子。默认值: (0, 0) 。 如果是浮点数,则代表是范围 [-hue, hue],从此范围中选择调整因子。注意 hue 取值应为[0, 0.5]。 如果它是一个序列,则代表是范围 [min, max],从此范围中选择调整因子。注意取值范围min和max是 [-0.5, 0.5] 范围内的浮点数,并且min小于等于max。

异常:
  • TypeError - 如果 brightness 不是float或Sequence[float]类型。

  • TypeError - 如果 contrast 不是float或Sequence[float]类型。

  • TypeError - 如果 saturation 不是float或Sequence[float]类型。

  • TypeError - 如果 hue 不是float或Sequence[float]类型。

  • ValueError - 如果 brightness 为负数。

  • ValueError - 如果 contrast 为负数。

  • ValueError - 如果 saturation 为负数。

  • ValueError - 如果 hue 不在 [-0.5, 0.5] 范围内。

  • RuntimeError - 如果输入图像的shape不是 <H, W, C>。

支持平台:

CPU GPU Ascend

样例:

>>> import numpy as np
>>> import mindspore.dataset as ds
>>> import mindspore.dataset.vision as vision
>>>
>>> # Use the transform in dataset pipeline mode
>>> data = np.random.randint(0, 255, size=(1, 100, 100, 3)).astype(np.uint8)
>>> numpy_slices_dataset = ds.NumpySlicesDataset(data, ["image"])
>>> transform_op = vision.RandomColorAdjust(brightness=(0.5, 1),
...                                         contrast=(0.4, 1),
...                                         saturation=(0.3, 1))
>>> transforms_list = [transform_op]
>>> numpy_slices_dataset = numpy_slices_dataset.map(operations=transforms_list, input_columns=["image"])
>>> for item in numpy_slices_dataset.create_dict_iterator(num_epochs=1, output_numpy=True):
...     print(item["image"].shape, item["image"].dtype)
...     break
(100, 100, 3) uint8
>>>
>>> # Use the transform in eager mode
>>> data = np.random.randint(0, 255, size=(100, 100, 3)).astype(np.uint8)
>>> output = vision.RandomColorAdjust(brightness=(0.5, 1), contrast=(0.4, 1), saturation=(0.3, 1))(data)
>>> print(output.shape, output.dtype)
(100, 100, 3) uint8
教程样例: