我是TensorFlow 2.0的新手,加载一个图形后,我想绘制由TensorFlow转换的灰度图形,不幸的是出现了一个错误
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
im = tf.io.read_file('/home/1.png')
image = tf.image.decode_png(im)
image_gray = tf.image.rgb_to_grayscale(image)
plt.figure()
plt.imshow(image_gray)
然后错误弹出:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/zhongl/miniconda3/envs/tf2/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2677, in imshow
None else {}), **kwargs)
File "/home/zhongl/miniconda3/envs/tf2/lib/python3.7/site-packages/matplotlib/__init__.py", line 1599, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "/home/zhongl/miniconda3/envs/tf2/lib/python3.7/site-packages/matplotlib/cbook/deprecation.py", line 369, in wrapper
return func(*args, **kwargs)
File "/home/zhongl/miniconda3/envs/tf2/lib/python3.7/site-packages/matplotlib/cbook/deprecation.py", line 369, in wrapper
return func(*args, **kwargs)
File "/home/zhongl/miniconda3/envs/tf2/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 5679, in imshow
im.set_data(X)
File "/home/zhongl/miniconda3/envs/tf2/lib/python3.7/site-packages/matplotlib/image.py", line 690, in set_data
.format(self._A.shape))
TypeError: Invalid shape (321, 327, 1) for image data
但毫无疑问,原来的形象已经改变了
plt.figure()
plt.imshow(image)
plt.show()
错误消息的重要部分是:
显然,TensorFlow的^{} 以这种方式存储转换后的图像:
尽管如此,Matplotlib不能以这种方式处理灰度图像的数据,但需要类似
(321, 327)
的形状,即没有一维数据由于您在这里处理的是NumPy数组,因此可以使用NumPy的^{} 方法来消除额外的维度:
希望有帮助
相关问题 更多 >
编程相关推荐