使用此代码:
from scipy import misc
import matplotlib.pyplot as plt
images = data.test.images[0:9]
plt.imshow(images[0].reshape(28 , 28))
print(images[0].shape)
我绘制图像:
使用misc
中的scipy
:
face = misc.face()
misc.imsave('face.png', face) # First we need to create the PNG file
face = misc.imread('face.png')
print(face.shape)
plt.imshow(face)
我绘制图像:
如何将face
转换为可以使用plt.imshow
绘制的二维图像?
使用:
plt.imshow(face.reshape(768 , 1024))
产生错误:
ValueError Traceback (most recent call last)
<ipython-input-104-99fef1cec0d2> in <module>()
6 plt.imshow(face)
7
----> 8 plt.imshow(face.reshape(768 , 1024))
ValueError: cannot reshape array of size 2359296 into shape (768,1024)
我没有尝试将图像转换为灰度,而是将其转换为2维而非3维。
更新:
检查单个像素值:print(face[0][0])
为:[121 112 131]
。我应该将[121 112 131]
的平均值作为重塑的一部分吗?
答案 0 :(得分:0)
我真的不明白你在这里想做什么。如果您希望能够使用开箱即用的imshow
来绘制3D数据。如果您想转换为灰度,请查看this。或者,如果要切割3D数据集以获得2D矩阵,请查看this并:
from scipy.misc import face
f = face()
print(f.shape)
print(f[..., 0].shape) # slicing in last dimension
import matplotlib.pyplot as plt
plt.imshow(f[..., 0])
答案 1 :(得分:0)
此代码按预期工作:
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
gray = rgb2gray(face)
print(gray.shape)
plt.imshow(gray)
但颜色是偏斜的。 rgb2gray来源:How can I convert an RGB image into grayscale in Python?
在帮助我实现这一目标的过程中也赞不绝口。