cnn之将原始图像转换成矩阵
生活随笔
收集整理的這篇文章主要介紹了
cnn之将原始图像转换成矩阵
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#-*- 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ù)類(lèi)型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格式的彩色圖像可以看成是一個(gè)三維矩陣,矩陣中的每一個(gè)數(shù)代表圖像不同的位置上不同的顏色的亮度.但是圖像存儲(chǔ)時(shí)并不是直接存儲(chǔ)這些三維矩陣,而是要先對(duì)其進(jìn)行壓縮編碼再存儲(chǔ).因此讀取圖像的過(guò)程其實(shí)是先讀取其壓縮編碼后的結(jié)果,然后將其解碼的過(guò)程
總結(jié)
以上是生活随笔為你收集整理的cnn之将原始图像转换成矩阵的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: numpy输出到屏幕时有逗号和没逗号的原
- 下一篇: scala -cp file.jar f