Tensorflow中图像处理函数(图像⼤⼩调整)
版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。 blog.csdn/zSean/article/details/76383100
图像⼤⼩的调整⽅式:在Tensorflow中通过size_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 = size_images(img_data, [300,300],method=0)  #第⼀个参数为原始图像,第⼆个参数为图像⼤⼩,第三个参数给出了指定的算法    resized = np.asarray(resized.eval(),dtype='uint8')
plt.imshow(resized)
plt.show()
croped = size_image_with_crop_or_pad(img_data,200,200)    #⽬标图像⼤⼩<;原始图像的⼤⼩,则截取原始图像的居中部分,
padded = size_image_with_crop_or_pad(img_data,800,800)    #⽬标图像⼤⼩>原始图像的⼤⼩,则会在原始图像的四周填充全为0背景    plt.imshow(croped.eval())
plt.show()
plt.imshow(padded.eval())
plt.show()
central_cropped = al_crop(img_data,0.5)                #按照⽐例裁剪图像,第⼆个参数为调整⽐例,⽐例取值[0,1]
resize函数c++plt.imshow(central_cropped.eval())
plt.show()
在上述代码中,通过size_images函数调整图像的⼤⼩。
并且Tensorflow提供API对图像进⾏裁剪或者填充,当⽬标图像⼤⼩⼩于原始图像的⼤⼩时,则需要裁剪原始图像
当⽬标图像⼤⼩在⼤于原始图像的情况下,则需要填充原始图像四周最后还可以通过函数al_crop()来按照⽐例调整图像⼤⼩;
上述代码实验结果图为:
原始图像:                size_images(img_data, [300,300],method=0)
size_image_with_crop_or_pad(img_data,200,200)
size_image_with_crop_or_pad(img_data,800,800)                      al_crop(img_data,0.5)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。