TensorFlow 实战(五)—— 图像预处理

来源:互联网 发布:linux下串口调试助手 编辑:程序博客网 时间:2024/06/04 18:53

当然 tensorflow 并不是一种用于图像处理的框架,这里图像处理仅仅是一些简单的像素级操作,最终目的比如用于数据增强

  • tf.random_crop()
  • tf.image.random_flip_left_right():
  • tf.image.random_hue()
    • random_contrast()
    • random_brightness()
    • random_saturation()
def pre_process_image(image, training):    # This function takes a single image as input,    # and a boolean whether to build the training or testing graph.    if training:        # For training, add the following to the TensorFlow graph.        # Randomly crop the input image.        image = tf.random_crop(image, size=[img_size_cropped, img_size_cropped, num_channels])        # Randomly flip the image horizontally.        image = tf.image.random_flip_left_right(image)        # Randomly adjust hue, contrast and saturation.        image = tf.image.random_hue(image, max_delta=0.05)        image = tf.image.random_contrast(image, lower=0.3, upper=1.0)        image = tf.image.random_brightness(image, max_delta=0.2)        image = tf.image.random_saturation(image, lower=0.0, upper=2.0)        # Some of these functions may overflow and result in pixel        # values beyond the [0, 1] range. It is unclear from the        # documentation of TensorFlow 0.10.0rc0 whether this is        # intended. A simple solution is to limit the range.        # Limit the image pixels between [0, 1] in case of overflow.        image = tf.minimum(image, 1.0)        image = tf.maximum(image, 0.0)    else:        # For training, add the following to the TensorFlow graph.        # Crop the input image around the centre so it is the same        # size as images that are randomly cropped during training.        image = tf.image.resize_image_with_crop_or_pad(image,                                                       target_height=img_size_cropped,                                                       target_width=img_size_cropped)    return image
0 0
原创粉丝点击