作为 Unity 的 ML 代理的一部分,输入到强化学习代理的图像可以转换为灰度,如下所示:
def _process_pixels(image_bytes=None, bw=False):
s = bytearray(image_bytes)
image = Image.open(io.BytesIO(s))
s = np.array(image) / 255.0
if bw:
s = np.mean(s, axis=2)
s = np.reshape(s, [s.shape[0], s.shape[1], 1])
return s
由于我对 Python 尤其是 numpy 不够熟悉,我怎样才能获得正确的尺寸来绘制重新整形的 numpy 数组?据我了解,形状基于图像的宽度、高度和通道数。所以整形后只有一个通道来确定灰度值。我只是还没有找到一种方法来绘制它。
这是Unity ML Agents 存储库中提到的代码的链接。
这就是我想要绘制它的方式:
plt.imshow(s)
plt.show()