欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tensorflow 缩小放大图片的多种操作

程序员文章站 2024-03-24 09:24:34
...

图像大小的调整方式:在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;

  1. import matplotlib.pyplot as plt
  2. import tensorflow as tf
  3. import numpy as np
  4. image_raw_data = tf.gfile.GFile(‘D:/path/to/picture/8.jpg’,’rb’).read() #加载原始图像
  5. with tf.Session() as sess:
  6. img_data = tf.image.decode_jpeg(image_raw_data)
  7. plt.imshow(img_data.eval())
  8. plt.show()
  9. resized = tf.image.resize_images(img_data, [300,300],method=0) #第一个参数为原始图像,第二个参数为图像大小,第三个参数给出了指定的算法
  10. resized = np.asarray(resized.eval(),dtype=’uint8’)
  11. plt.imshow(resized)
  12. plt.show()
  13. croped = tf.image.resize_image_with_crop_or_pad(img_data,200,200) #目标图像大小<原始图像的大小,则截取原始图像的居中部分,
  14. padded = tf.image.resize_image_with_crop_or_pad(img_data,800,800) #目标图像大小>原始图像的大小,则会在原始图像的四周填充全为0背景
  15. plt.imshow(croped.eval())
  16. plt.show()
  17. plt.imshow(padded.eval())
  18. plt.show()
  19. central_cropped = tf.image.central_crop(img_data,0.5) #按照比例裁剪图像,第二个参数为调整比例,比例取值[0,1]
  20. plt.imshow(central_cropped.eval())
  21. 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 缩小放大图片的多种操作tensorflow 缩小放大图片的多种操作                       tensorflow 缩小放大图片的多种操作

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

tensorflow 缩小放大图片的多种操作                                                                            tensorflow 缩小放大图片的多种操作








            </div>