Python基于张量流进行图像处理操作的示例分析

  介绍

小编给大家分享一下Python基于张量流进行图像处理操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

Python主要用来做什么

Python主要应用于:1,网络开发;2、数据科学研究;3,网络爬虫;4、嵌入式应用开发,5日游戏开发;6桌面应用开发。

具体如下:

在对图像进行深度学习时,有时可能图片的数量不足,或者希望网络进行更多的学习,这时可以对现有的图片数据进行处理使其变成一张新的图片,在此基础上进行学习,从而提高网络识别的准确率。

1,图像解码显示

利用matplot库可以方便简洁地在jupyter内对图片进行绘制与输出,首先通过tf.gfile打开图片文件,并利用函数tf.image.decode_jpeg将jpeg图片解码为三位矩阵,之后便可以通过matplot绘制与显示图片信息了

import  matplotlib.pyplot  as  plt   import  tensorflow  as  tf   import  numpy  as  np   ,   #读取图像文件   image_raw=tf.gfile.GFile (& # 39; D: \ Temp \ MachineLearning \ data \ cat.jpeg& # 39;, & # 39; rb # 39;) .read ()   ,   with  tf.Session (), as 税:   #才能对jpeg图像解码得到图像的三位矩阵数据   image_data才能=https://www.yisu.com/zixun/tf.image.decode_jpeg (image_raw)   print (image_data.eval ())   plt.imshow (image_data.eval ())   plt.show ()

可以看到打印的图片三维矩阵信息和显示的图片:

 Python基于张量流进行图像处理操作的示例分析”>,,,,,,,,,,,,,,,,,,,,,,,,,,,,<img src=

2,图像缩放

tensorflow还自带了许多图像处理函数,比如resize_image对图片进行大小的缩放。其中第一个参数代表图片数据源,第二个数组代表缩放后的大小,第三个方法代表采用的缩放方法,默认0是双线性插值法,1代表最近邻插值法,2代表双立方插值法,3代表像素区域插值法。

,, #对图片大小进行缩放   image_resize才能=tf.image.resize_images (image_data,[500500],方法=0)   # tensorflow才能处理后的图片是float32格式的,需要转化为uint8才能正确输出   image_resize才能=np.asarray (image_resize.eval (), dtype=& # 39; uint8& # 39;)   plt.imshow才能(image_resize)   plt.show才能()

3,图像裁切

函数tf.image.resize_image_with_crop_or_pad可以在保证图片原始比例的条件下对图片进行裁切或填充。

函数tf.image。random_crop是随机对图片进行选取裁剪,而不是以中心。

,, #图片裁剪   image_crop才能=tf.image.resize_image_with_crop_or_pad (image_data, 500500)   plt.imshow才能(image_crop.eval ())   plt.show才能()   #才能随机裁剪   img_random才能=tf.image.random_crop (image_data[3] 300300年)   plt.imshow才能(img_random.eval ())   plt.show才能()

 Python基于张量流进行图像处理操作的示例分析”>,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,<img src=

resize_image_with_crop_or_pad第一个参数是图片资源,后两个参数是裁切后的图片大小,当原始图片大于目标值时将裁去两边多余部分,当图片小于目标值时将用黑色填充,例如上图左右被裁剪,上下用黑色填充。

random_crop第一个参数是图片资源,第二个参数是一个三位张量,代表目标图像大小。

4,图像翻转

通过函数实现图片的上下,左右翻转,在模型训练时,可以将原本的样本图片进行反转,作为新的特征值进行输入供模型训练。

,, #上下翻转   img_down才能=tf.image.flip_up_down (image_data)   plt.imshow才能(img_down.eval ())   plt.show才能()   ,,   #才能左右翻转   img_left才能=tf.image.flip_left_right (image_data)   plt.imshow才能(img_left.eval ())   plt.show才能()

5,调整对比度,明度,饱和度

通过tf.image.adjust_contrast可以对图像对比度进行调整,当参数大于1代表加深,小于1代表减淡

tf.image。random_contrast可以在指定范围内随即调整对比度

Python基于张量流进行图像处理操作的示例分析