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

瘦欲@ 提交于 2019-12-06 12:02:35

问题一:我图片读入是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]的灰度图了

 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!