-
通过Tensorflow进行图片读取和显示
一、使用tf.read_file(path) # path为图片路径
import tensorflow as tf image_contents = tf.read_file(path) # 读取文件 image = tf.image.decode_jpeg(image_contents, channels=3) # 图片解码,识别jpg图片,此时类型为tensor类型,若需要输出,需要通过eval输出 plt.imshow(image.eval(session=sess))
二、使用
tf.gfile.FastGFile(path,'rb').read() # path为图片路径
import tensorflow as tf # 获取原始图像 image_raw_data=tf.gfile.FastGFile(path,'rb').read() # 对图形进行解码,转化为三维矩阵 image=tf.image.decode_jpeg(image_raw_data) plt.imshow(image.eval(session=sess))
-
通过scipy进行图片读取和显示
import scipy image_contents = scipy.misc.imread(path) plt.imshow(image_contents)
-
通过scipy进行图像修改
# 修改图像shape image=scipy.misc.imresize(image_contents,shape) plt.imshow(image)
-
使用Tensorflow进行图像处理
-
图片 缩放
# 用双线性插值法将图像缩放到指定尺寸,method值为0 resized1 = tf.image.resize_images(image, [256, 256], method=0) # 最近邻插值,method值为1 resized2 = tf.image.resize_images(image, [256, 256], method=1) # 双立方插值,method值为2 resized3 = tf.image.resize_images(image, [256, 256], method=2) # 像素区域插值,method值为3 resized4 = tf.image.resize_images(image, [256, 256], method=3) # 图像显示,需先进行图像编码转换 resized1 = np.asarray(resized1.eval(session=sess), dtype='uint8') resized2 = np.asarray(resized2.eval(session=sess), dtype='uint8') resized3 = np.asarray(resized3.eval(session=sess), dtype='uint8') resized4 = np.asarray(resized4.eval(session=sess), dtype='uint8') # 图像显示 plt.imshow(resized1) plt.imshow(resized2) plt.imshow(resized3) plt.imshow(resized4)
-
图像裁剪 填充
# 剪裁,根据原图像尺寸进行判断,若原图像大于该尺寸,则会剪裁,若图像小于该尺寸,就会填充,缺失部分用黑块补齐 croped = tf.image.resize_image_with_crop_or_pad(image, 100, 100) # 填充 padded = tf.image.resize_image_with_crop_or_pad(image, 2000, 2000) # 随机剪裁,前提是目标图像的尺寸大于定义的该尺寸 random_croped = tf.random_crop(image, [100, 100, 3]) # 图像显示 plt.imshow(croped.eval(session=sess)) plt.imshow(padded.eval(session=sess)) plt.imshow(random_croped.eval(session=sess))
-
图片翻转
# 水平翻转 flip_left_right = tf.image.flip_left_right(image) # 上下翻转 flip_up_down = tf.image.flip_up_down(image) # 图片显示 plt.imshow(flip_left_right.eval(session=sess)) plt.imshow(flip_up_down.eval(session=sess))
-
改变图片对比度
# 改变对比度,图像对比度变为原来的该倍数,如0.5,变为原来的二分之一,2,变为原来的两倍 constrast = tf.image.adjust_contrast(image, 0.5) # 在lower和upper这个范围内随机调整图像对比度 constrast_1=tf.image.random_contrast(image,lower=0.2,upper=3) # 图片显示 plt.imshow(constrast.eval(session=sess)) plt.imshow(constrast_1.eval(session=sess))
-
白化处理
# 白化处理,将像素值转化为零均值和单位方差 standardization = tf.image.per_image_standardization(image) # tensorflow函数处理后图片存储数据为float32格式,需要转化为uint8才能正常打开图片 standardization = np.asarray(standardization.eval(session=sess), dtype='uint8') # 图片显示 plt.imshow(standardization)
-
相关文章
- 03-27读取图片文件、处理和保存
- 03-27OpenCV——保存图片和视频
- 03-27Unity3d-WWW实现图片资源显示以及保存和本地加载
- 03-27pandas对excel遍历读取与填充:涉及多张表的保存、NAN的类型处理、NAN的处理(str类型下)
- 03-27使用缓冲读取器来处理大型.csv文件,Python
- 03-27文件读取和友元函数
- 03-27PyQt5 *绘画,支持导入可变大小的图片和保存图片、插入可变矩形、椭圆、箭头,支持文本输入和再编辑,支持图层变动等
- 03-27matlab文件读写处理实例(三)——读取文件特定行
- 03-27matlab文件读写处理实例(一)——不规则文件读取
- 03-27深度学习原理与框架-神经网络架构 1.神经网络构架 2.激活函数(sigmoid和relu) 3.图片预处理(减去均值和除标准差) 4.dropout(防止过拟合操作)