在显示图片上im.show的问题

Posted cn-gzb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在显示图片上im.show的问题相关的知识,希望对你有一定的参考价值。

问题一:我图片读入是tensor类型的,但是我要变成nadrry类型或者用im.show显示(im.show显示所用到的就是nadrry类型)

            for image, label, filename in loader:
                sess = tf.Session()
                sess.run(tf.global_variables_initializer())
                img = np.transpose(image, (0, 2, 3, 1))
                img_numpy = img.numpy()[0]
                plt.imshow(img_numpy)  # 显示图片
                # plt.axis(‘off‘)  # 不显示坐标轴
                plt.show()
                b = img_numpy.shape
                print(filename)
                print(b)

首先,在神经网络中,图像被表示成[c, h, w]格式或者[n, c, h, w]格式。

im.show显示的shape为[n,h,w,c],而我们直接读取文件格式是[n,c,h,w],为了转成[n,h,w,c]形式,我采用

img = np.transpose(image, (0, 2, 3, 1))

问题二:[n,h,w,c]为啥im.show显示不出来

im.show显示的图片格式为[h,w,c],没有通道n,所以我将n通道去除:img_numpy = img.numpy()[0],这时显示的是彩色

问题三:要显示灰度图片。
这就简单了,直接在tensor的基础上img_numpy = image.numpy()[0][0],
将[n,c,h,w]的n,c去除就显示[h,w]的灰度图了

 



以上是关于在显示图片上im.show的问题的主要内容,如果未能解决你的问题,请参考以下文章

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

CardView 不在披萨片段中显示图片

PIL二值化验证码图片问题。二值化后出现一堆淡淡的黑点,直接显示图片没问题,保存后再打开就有问题

Pillow tutorial

图像处理PILLOW的使用