Python 将阵列重塑为rgb矩阵
我已经在numpy阵列中加载了100x100 rgb图像。然后,我将其转换为30000x1 numpy数组,以通过机器学习模型。该模型的输出也是一个30000x1 numpy阵列。如何将此数组转换回100x100个3元组的numpy数组,以便打印生成的rgb图像 如果初始数组是Python 将阵列重塑为rgb矩阵,python,arrays,numpy,Python,Arrays,Numpy,我已经在numpy阵列中加载了100x100 rgb图像。然后,我将其转换为30000x1 numpy数组,以通过机器学习模型。该模型的输出也是一个30000x1 numpy阵列。如何将此数组转换回100x100个3元组的numpy数组,以便打印生成的rgb图像 如果初始数组是[r1 g1 b1]、[r2 g2 b2]、…、[],它将展开到[r1 g1 b1 r2 g2 b2…]。我需要它以[r1 g1 b1]、[r2 g2 b2]、…、[]的形式返回 我用于将图像作为数组加载的内容: im=i
[r1 g1 b1]、[r2 g2 b2]、…、[]
,它将展开到[r1 g1 b1 r2 g2 b2…]
。我需要它以[r1 g1 b1]、[r2 g2 b2]、…、[]的形式返回
我用于将图像作为数组加载的内容:
im=img.resize((height,width), Image.ANTIALIAS);
im=np.array(im);
im=im.ravel();
我已经试过了。重塑((100100,3))得到一个黑色的输出图像。机器学习模型是正确的,它不是获得黑色输出的原因。尝试重塑((3100100))
您的<代码>重塑
似乎是正确的(使用初始数组进行尝试)。你是如何转换为RGB的,也许问题就在这里?我没有将图像转换为RGB。我正在将RGB图像加载到img
数组中,并将其重塑为100x100,然后将其存储在im
中,我指的是输出。从你的问题:“我已经尝试过了。重塑((100100,3)),我得到了一个黑色的输出图像。”——因此我的问题是,你如何转换回RGB图像?您是否尝试过在没有机器学习的情况下重塑和显示原始阵列?
a = np.random.random((3, 2, 2))
# array([[[ 0.28623689, 0.96406455],
# [ 0.55002183, 0.73325715]],
#
# [[ 0.44293834, 0.08118479],
# [ 0.28732176, 0.94749812]],
#
# [[ 0.40169829, 0.0265604 ],
# [ 0.07904701, 0.19342463]]])
x = np.ravel()
# array([ 0.28623689, 0.96406455, 0.55002183, 0.73325715, 0.44293834,
# 0.08118479, 0.28732176, 0.94749812, 0.40169829, 0.0265604 ,
# 0.07904701, 0.19342463])
print(x.reshape((2, 2, 3)))
# array([[[ 0.28623689, 0.96406455, 0.55002183],
# [ 0.73325715, 0.44293834, 0.08118479]],
# [[ 0.28732176, 0.94749812, 0.40169829],
# [ 0.0265604 , 0.07904701, 0.19342463]]])
print(x.reshape((3, 2, 2)))
# array([[[ 0.28623689, 0.96406455],
# [ 0.55002183, 0.73325715]],
#
# [[ 0.44293834, 0.08118479],
# [ 0.28732176, 0.94749812]],
#
# [[ 0.40169829, 0.0265604 ],
# [ 0.07904701, 0.19342463]]])