我有以下代碼:
import tensorflow as tf
from matplotlib import pyplot as plt
def load(im1, im2):
ima1 = tf.io.read_file(im1)
ima1 = tf.image.decode_image(ima1)
ima1 = tf.cast(ima1, tf.float32)
ima2 = tf.io.read_file(im2)
ima2 = tf.image.decode_image(ima2)
ima2 = tf.cast(ima2, tf.float32)
return ima1, ima2
inp, re = load(r"RAWs/1313 (1).jpg", r"Clean/1313 (1).png")
plt.figure()
plt.imshow(inp)
plt.figure()
plt.imshow(re)
plt.show()
一切正常,沒有錯誤,除了第二張影像re被綠移(下面最右邊的影像):

我有最新版本的 tensorflow-cpu,因為由于當前短缺,我沒有 GPU,Python 3.9 64 位。
有人知道為什么會發生這種情況以及如何解決嗎?
原始影像:一、二、三。
uj5u.com熱心網友回復:
它不是彩色影像,而是單通道灰度影像。您正在查看假色,有時稱為偽色。該imshow()函式將陣列中的數字映射到顏色圖中的viridis顏色。
彩色影像有 3 個通道(或 4 個,如果它們也有不透明度)。因此,彩色影像的 NumPy 陣列將具有類似(h, w, 3)或 的形狀(h, w, 4)。這個只有一個通道(形狀像(h, w))。換句話說,它是一個灰度影像。
如果你用plt.imshow(img, cmap='gray')它來繪制這個陣列,它將顯示你的期望。該方案將零(或任何最低數字)映射到黑色,將 1(或最高值)映射到白色。(在此處查看所有maplotlib顏色圖。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337533.html
標籤:Python 图片 张量流 matplotlib
