首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow绿移图像

Tensorflow绿移图像
EN

Stack Overflow用户
提问于 2021-10-26 14:13:51
回答 1查看 62关注 0票数 0

我有以下代码:

代码语言:javascript
复制
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,Python3.9 64位。

有人知道为什么会发生这种事吗?如何解决?

原始图片:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 14:19:54

这不是彩色图像,而是单通道灰度图像。你看的是假色,有时被称为伪彩色imshow()函数将数组中的数字映射到viridis彩色地图中的颜色。

彩色图像有3个通道(或4个,如果它们也有不透明度)。因此,彩色图像的NumPy数组将具有类似于(h, w, 3)(h, w, 4)的形状。这个只有一个通道(形状类似于(h, w))。换句话说,这是一幅灰度图像。

如果您用plt.imshow(img, cmap='gray')绘制这个数组,它将显示您期望的结果。此方案将零(或任何最低数字)映射为黑色,将1(或最高值)映射为白色。(见所有maplotlib的彩色地图这里。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69724742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档