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
- 教程样例: