文章目录
〇、写在前面
TensorFlow中图像处理函数基本都是在tf.image
中,有不了解的可以私信或查找官方文档。
参考资料:
一、获取图像数据
1.1 读取编码数据
tf.gfile.FastGFile('path','读写设置')
如:image_raw_data=tf.gfile.FastGFile('dog.jpg','rb').read()
1.2 解码
tf.image.decode_jpeg(image)
tf.image.decode_png(image)
例子:
img_data=tf.image.decode_jpeg(image_raw_data)
1.3 显示图像
print(img_data.eval())
import matplotlib.pyplot as plt
plt.imshow(img_data.eval())
plt.show()
二、图像处理
2.1 图像缩放
tf.image.resize_images(img_data,size,method=0)
img_data
:解码后的图像数据。
size
:图像缩放到的尺寸,如[256,256]
。
method
:默认0
双线性插值法(bilinear),可选1
最近邻插值法(nearest_neighbor),可选2
双立方插值法(bicubic),可选3
像素区域插值法(area)
例子:
resized1=tf.image.resize_images(img_data,[256,256],method=0)
resize1=np.asarray(resized1.eval(),dtype='uint8')
plt.imshow(resized1)
plt.show()
2.2 图像裁剪和填充
tf.image.resize_image_with_crop_or_pad(img_data,x,y)
:裁剪时默认选取居中部分,填充时默认填充在四周填充黑色(0)背景。
x
/y
:裁剪或填充之后的图像尺寸。
tf.image.random_crop(image_data,size,seed=None,name=None)
:随机裁剪
2.3 图像翻转
tf.image.flip_left_right(image_data)
:水平翻转tf.image.flip_up_down(image_data)
:垂直翻转
2.4 改变对比度
tf.image.adjust_contrast(image_data,k)
:固定倍数改变对比度。
k
:将对比度变为原来的k倍。
tf.image.random_contrast(image_data,lower=0.2,upper=3)
:在范围内随机改变对比度
2.5 白化处理
白化即将图像的像素标准正态化。
tf.image.per_image_standardization(img_data)