tensorflow实战之 图像处理函数

#读取一张图片
with tf.gfile.GFile('photos/1.jpg','rb') as f:
    image = f.read()
    
with tf.Session() as sess:
    #解码
    image_data = tf.image.decode_jpeg(image)
    print('原图')
    plt.imshow(image_data.eval())
    plt.show()
    #image_data = tf.image.convert_image_dtype(image_data,tf.float32)
    
    #重新保存图像
    encode_image = tf.image.encode_jpeg(image_data)
    with tf.gfile.GFile('photos/output.jpg','wb') as f:
        f.write(encode_image.eval())
        
    #tf.image.resize_images:将原始图像缩放成指定的图像大小
    resized = tf.image.resize_images(image_data,[400,400],method=0)
    
    # TensorFlow的函数处理图片后存储的数据是float32格式的,需要转换成uint8才能正确打印图片。
    resized = np.asarray(resized.eval(), dtype='uint8')
    print('tf.image.resize_images:')
    plt.imshow(resized)
    plt.show()
    
    #tf.image.resize_image_with_crop_or_pad:剪裁或填充处理
    pad = tf.image.resize_image_with_crop_or_pad(image_data,600,600)
    crop = tf.image.resize_image_with_crop_or_pad(image_data,300,300)
    print('tf.image.resize_image_with_crop_or_pad:')
    plt.imshow(crop.eval())
    plt.show()
    plt.imshow(pad.eval())
    plt.show()
    
    #tf.image.central_crop:比例调整,central_fraction决定了要指定的比例,取值范围为(0,1]
    print('tf.image.central_crop:')
    central_crop = tf.image.central_crop(image_data,0.5)
    plt.imshow(central_crop.eval())
    plt.show()
    
    #上下反转
    flipped = tf.image.flip_up_down(image_data)
    print('上下反转')
    plt.imshow(flipped.eval())
    plt.show()
    #左右翻转
    flipped = tf.image.flip_left_right(image_data)
    print('上下反转')
    plt.imshow(flipped.eval())
    plt.show()
    #亮度调整
    adjust = tf.image.adjust_brightness(image_data,0.5)
    print('调整亮度')
    plt.imshow(adjust.eval())
    plt.show()
    #在[-delta,delta]之间随机调整亮度
    adjust = tf.image.random_brightness(image_data,0.5)
    plt.imshow(adjust.eval())
    plt.show()
    #调整对比度
    adjust = tf.image.adjust_contrast(image_data,5)
    plt.imshow(adjust.eval())
    plt.show()
    #随机调整对比度
    adjust = tf.image.random_contrast(image_data,-5,5)
    plt.imshow(adjust.eval())
    plt.show()
    #加色相
    adjust = tf.image.adjust_hue(image_data,0.2)
    plt.imshow(adjust.eval())
    plt.show()
    #在[0,delta]之间随机加色相
    adjust = tf.image.random_hue(image_data,0.3)
    plt.imshow(adjust.eval())
    plt.show()

猜你喜欢

转载自blog.csdn.net/hanyong4719/article/details/80375994