Python笔记(十二)——image图像预处理模块

TensorFlow中有着一个image模块专门用于处理图片数据的预处理,里面定义了若干常见的图像预处理函数,让我们列举出来,介绍一下,API地为 tf.image.


  1. tf.image.adjust_brightness(images, delta) :用于改变原图像的明亮度,也就是在原图像的基础上加上一个delta,于是我们有new_image = old_image+delta。
  2. tf.image.adjust_contrast(images,contrast_factor):改变原图片的对比度,公式为(x−mean)∗contrast_factor+mean(x−mean)∗contrast_factor+mean, 其中的x为原输入,mean为每个通道的均值。
  3. tf.image.adjust_jpeg_quality(images, jpeg_quality):改变原jpeg图像的编码质量(不是很懂什么叫做编码质量,望指正),其中的jpeg_quality需在[0,100]这个区间内。
  4. tf.image.adjust_gamma:伽马矫正,Out=IngammaOut=Ingamma
  5. tf.image.adjust_hue(image,delta):改变原图像的色彩(hue),本函数将原RGB图像转换到HSV空间后,在hue通道上加上delta后,再转换回RGB空间。
  6. tf.image.adjust_saturation(images,saturation_factor):类似于改变色彩的函数,这个函数改变的是饱和度。
  7. tf.image.central_crop(images,central_fraction):对图像进行中心修剪,也就是按照一定比例保留中间的像素,去除中心之外的像素,注意输出图像和输入图像的尺寸是一样的,也就是说中心之外的像素置位了而已。其中central_fraction在[0,1]区间,表示的是中心保留的比例。
  8. tf.image.convert_image_dtype(image,dtype,saturate=False):改变图片的数据类型,其中dtype是目标数据类型,注意到这个转换不是单纯的数据类型转换,他会将浮点类型的图片归一化到[0,1]之间,整型的数据类型归一化到[0,MAX]之间,这里的MAX指的是不同整型数据类型能够表达的最大正数。注意到在浮点型转换到整型的过程中可能会出现上溢或者下溢的问题,如果指定了saturate=True将可以避免这个问题,它会在数据类型转换之前截断输入的值,比如输入是1.02,那么就会截为1.0
  9. tf.image.decode_bmp,tf.image.decode_gif,tf.image.decode_jpeg,tf.image.encode_png,这些都是图片解码函数,传入图片的地址,解码出图片。可以用更为同一的接口tf.image.decode_image代替,它会自动判断图片的格式并且解码。

Images

编码和解码函数
       TensorFlow提供了一些操作用于编码和解码JPEG,PNG格式的图片。编码后的图像用一个标量字符串张量(Scalar String Tensor,我觉得就是一个图片的地址吧)表示,解码后的图像用一个3D的uint8类型的张量表示,尺寸为[height,width,channels]。(PNG也可以支持uint16的数据类型)。 
       这些编解码操作在一个时刻只能应用于一张图片,他们的输入和输出都是可变长的,如果你需要固定尺寸的图片,那么就对输出结果进行裁剪或者resize吧。相关函数有:

  • tf.image.decode_bmp
  • tf.image.decode_gif
  • tf.image.decode_jpeg
  • tf.image.encode_jpeg
  • tf.image.decode_png
  • tf.image.encode_png
  • tf.image.decode_image

 

 

转自:

tensorflow中的image预处理操作函数
 

你可能感兴趣的:(TransorFlow笔记)