cnn之将原始图像转换成矩阵
生活随笔
收集整理的這篇文章主要介紹了
cnn之将原始图像转换成矩阵
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt
import tensorflow as tf
# 讀取圖像數(shù)據(jù)
img = tf.gfile.FastGFile('./images/u=605243693,3035272260&fm=26&gp=0.jpg','rb').read()with tf.Session() as sess:# 用ipeg格式將圖像解碼得到三維矩陣(png格式用decode_png)# 解碼后得到結(jié)果為張量img_data = tf.image.decode_jpeg(img)#jpeg jpg#img_data = tf.image.decode_png(img)print(img_data.eval().shape )print(type(img_data.eval()))# 打印出得到的三維矩陣print(img_data.eval()) # 使用pyplot可視化得到的圖像plt.imshow(img_data.eval())plt.show()#轉(zhuǎn)換格式 # 轉(zhuǎn)換圖像的數(shù)據(jù)類型img_data = tf.image.convert_image_dtype(img_data, dtype=tf.uint8)# 將圖像的三維矩陣重新按照png格式存入文件encoded_image = tf.image.encode_png(img_data)# 得到圖像的png格式with tf.gfile.GFile('model.png', 'wb') as f:f.write(encoded_image.eval())
輸出結(jié)果:
?
本質(zhì)原理:?
一張RGB格式的彩色圖像可以看成是一個三維矩陣,矩陣中的每一個數(shù)代表圖像不同的位置上不同的顏色的亮度.但是圖像存儲時并不是直接存儲這些三維矩陣,而是要先對其進行壓縮編碼再存儲.因此讀取圖像的過程其實是先讀取其壓縮編碼后的結(jié)果,然后將其解碼的過程
總結(jié)
以上是生活随笔為你收集整理的cnn之将原始图像转换成矩阵的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: numpy输出到屏幕时有逗号和没逗号的原
- 下一篇: scala -cp file.jar f