Tensorflow中图像处理函数(图像大小调整)

图像大小的调整方式:在Tensorflow中通过tf.image.resize_images函数实现;

1.双线性插值算法(Bilinear interpolation);Method取值为:0;

2.最近邻居法(Nearest  neighbor interpolation);Method取值为:1;

3.双三次插值法(Bicubic interpolation);Method取值为:2;

4.面积插值法(Area interpolation) ;Method取值为:3;

import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np

image_raw_data = tf.gfile.GFile('D:/path/to/picture/8.jpg','rb').read()   #加载原始图像

with tf.Session() as sess:
    img_data = tf.image.decode_jpeg(image_raw_data)
    plt.imshow(img_data.eval())
    plt.show()

    resized = tf.image.resize_images(img_data, [300,300],method=0)  #第一个参数为原始图像,第二个参数为图像大小,第三个参数给出了指定的算法
    resized = np.asarray(resized.eval(),dtype='uint8')
    plt.imshow(resized)
    plt.show()

    croped = tf.image.resize_image_with_crop_or_pad(img_data,200,200)    #目标图像大小<原始图像的大小,则截取原始图像的居中部分,
    padded = tf.image.resize_image_with_crop_or_pad(img_data,800,800)    #目标图像大小>原始图像的大小,则会在原始图像的四周填充全为0背景
    plt.imshow(croped.eval())
    plt.show()
    plt.imshow(padded.eval())
    plt.show()

    central_cropped = tf.image.central_crop(img_data,0.5)                #按照比例裁剪图像,第二个参数为调整比例,比例取值[0,1]
    plt.imshow(central_cropped.eval())
    plt.show()

在上述代码中,通过tf.image.resize_images函数调整图像的大小。

并且Tensorflow提供API对图像进行裁剪或者填充,当目标图像大小小于原始图像的大小时,则需要裁剪原始图像

                                                                                           当目标图像大小在大于原始图像的情况下,则需要填充原始图像四周

最后还可以通过函数tf.image.central_crop()来按照比例调整图像大小;

上述代码实验结果图为:

                  原始图像:                tf.image.resize_images(img_data, [300,300],method=0)     tf.image.resize_image_with_crop_or_pad(img_data,200,200)

Tensorflow中图像处理函数(图像大小调整)_第1张图片Tensorflow中图像处理函数(图像大小调整)_第2张图片                       Tensorflow中图像处理函数(图像大小调整)_第3张图片

tf.image.resize_image_with_crop_or_pad(img_data,800,800)                       tf.image.central_crop(img_data,0.5)

Tensorflow中图像处理函数(图像大小调整)_第4张图片                                                                            Tensorflow中图像处理函数(图像大小调整)_第5张图片








你可能感兴趣的:(tensorflow,应用)