prepro.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:tensorlayer-chinese 作者: shorxp 项目源码 文件源码
def adjust_hue(im, hout=0.66, is_offset=True, is_clip=True, is_random=False):
    """ Adjust hue of an RGB image. This is a convenience method that converts an RGB image to float representation, converts it to HSV, add an offset to the hue channel, converts back to RGB and then back to the original data type.
    For TF, see `tf.image.adjust_hue <https://www.tensorflow.org/api_docs/python/tf/image/adjust_hue>`_ and `tf.image.random_hue <https://www.tensorflow.org/api_docs/python/tf/image/random_hue>`_.

    Parameters
    -----------
    im : should be a numpy arrays with values between 0 and 255.
    hout : float.
        - If is_offset is False, set all hue values to this value. 0 is red; 0.33 is green; 0.66 is blue.
        - If is_offset is True, add this value as the offset to the hue channel.
    is_offset : boolean, default True.
    is_clip : boolean, default True.
        - If True, set negative hue values to 0.
    is_random : boolean, default False.

    Examples
    ---------
    - Random, add a random value between -0.2 and 0.2 as the offset to every hue values.
    >>> im_hue = tl.prepro.adjust_hue(image, hout=0.2, is_offset=True, is_random=False)

    - Non-random, make all hue to green.
    >>> im_green = tl.prepro.adjust_hue(image, hout=0.66, is_offset=False, is_random=False)

    References
    -----------
    - `tf.image.random_hue <https://www.tensorflow.org/api_docs/python/tf/image/random_hue>`_.
    - `tf.image.adjust_hue <https://www.tensorflow.org/api_docs/python/tf/image/adjust_hue>`_.
    - `StackOverflow: Changing image hue with python PIL <https://stackoverflow.com/questions/7274221/changing-image-hue-with-python-pil>`_.
    """
    hsv = rgb_to_hsv(im)
    if is_random:
        hout = np.random.uniform(-hout, hout)

    if is_offset:
        hsv[...,0] += hout
    else:
        hsv[...,0] = hout

    if is_clip:
        hsv[...,0] = np.clip(hsv[...,0], 0, np.inf)  # Hao : can remove green dots

    rgb = hsv_to_rgb(hsv)
    return rgb


# # contrast
# def constant(x, cutoff=0.5, gain=10, inv=False, is_random=False):
#     # TODO
#     x = exposure.adjust_sigmoid(x, cutoff=cutoff, gain=gain, inv=inv)
#     return x
#
# def constant_multi():
#     #TODO
#     pass

# resize
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号