import numpy as np
with tf.Session():
image, label = sess.run(next_batch) # batch_size=1
print(image.shape) # [224, 224, 1]
image = np.concatenate((image, image, image), axis=-1)
print(image.shape) # [224, 224, 3]
# image有三個通道,每個通道都是原始的單通道的複製
tf.image.grayscale_to_rgb函數
tf.image.grayscale_to_rgb(
images,
name=None
)
定義
將一個或多個圖像從灰度轉換爲RGB
輸出與images相同DType和秩的張量.輸出的最後一個維度的大小爲3,包含像素的RGB值
參數
images:要轉換的灰度張量,最後一個維度大小必須爲1
name:操作的名稱(可選)
返回值
轉換後的灰度圖像
# 舉例
from PIL import Image,ImageChops,ImageEnhance
import matplotlib.pyplot as plt
import tensorflow as tf
import numpy as np
if __name__ == "__main__":
img_data = Image.open('grey.jpg', 'r')
print(img_data.size) # (1000,625)
plt.subplot(1,2,1)
plt.title("origin")
plt.imshow(img_data)
img = np.array(img_data)
img = img.reshape(625,1000,1)
img_tensor = tf.convert_to_tensor(img)
img_tensor = tf.image.grayscale_to_rgb(img_tensor)
sess = tf.Session()
img = sess.run(img_tensor)
print(img_tensor.shape) # (625,1000,3)
plt.subplot(1, 2, 2)
plt.title("rgb")
plt.imshow(img)
plt.show()