Tensorflow图像预处理(2)大小调整

简单的图像预处理,包含对图像的反转和裁剪等基本操作,代码中有详细注释


#图像大小调整

import matplotlib.pyplot as plt

image_raw_data=tf.gfile.FastGFile("pic/ma.jpg","rb").read()          #读图    图片不是utf8编码的话,就需要改成rb而不是r

with tf.Session() as sess:
    img_data=tf.image.decode_jpeg(image_raw_data)                   #解码
    img_data=tf.image.convert_image_dtype(img_data,dtype=tf.float32)
    #在调整图片大小前,需要先对图片的数据类型进行转换
    # method:0双线性插值,1最近邻 2双三次插值 3面积插值
    resized=tf.image.resize_images(img_data,[300,300],method=0)             #更改大小。会强制将图片压缩成要求的比例
    croped=tf.image.resize_image_with_crop_or_pad(img_data,200,200)         #进行居中裁剪
    padded=tf.image.resize_image_with_crop_or_pad(img_data,600,600)         #对周围的像素进行全0填充
    central_cropped=tf.image.central_crop(img_data,0.5)                     #按照比例裁剪图像,后面的数字在0-1之间,是裁剪的比例

    flipped=tf.image.flip_up_down(img_data)                                 #上下反转
    flipped_left=tf.image.flip_left_right(img_data)                         #左右反转
    transposed=tf.image.transpose_image(img_data)                           #沿对角线反转
    #以50%概率上下反转图像
    flipped_up_maybe=tf.image.random_flip_up_down(img_data)
    #以50%概率左右反转图像
    flipped_left_maybe=tf.image.random_flip_left_right(img_data)

    fig=plt.figure()
    ax1=fig.add_subplot(3,1,1)
    ax2=fig.add_subplot(3,1,2)
    ax3=fig.add_subplot(3,1,3)
    ax1.imshow(flipped_up_maybe.eval())
    ax2.imshow(flipped_left_maybe.eval())
    ax3.imshow(transposed.eval())
    plt.show()

猜你喜欢

转载自blog.csdn.net/XINGBAIDE/article/details/85339101