如何在Jupyter Notebook中将MXNet NDArray显示为图像?

时间:2017-12-17 20:36:27

标签: mxnet

我有一个MXNet NDArray,里面有图像数据。如何在Jupyter Notebook中将NDArray渲染为图像?

type(data)
mxnet.ndarray.ndarray.NDArray

data.shape
(3, 759, 1012)

2 个答案:

答案 0 :(得分:3)

以下是如何操作:

  1. 将MXNet NDArray转换为numpy数组。
  2. 转置数组以将频道移至最后一维。
  3. 将数组转换为uint8(0到255)。
  4. 使用matplotlib渲染数组。
  5. 以下是代码:

    import mxnet as mx
    import numpy as np
    from matplotlib import pyplot as plt
    
    def render_as_image(a):
        img = a.asnumpy() # convert to numpy array
        img = img.transpose((1, 2, 0))  # Move channel to the last dimension
        img = img.astype(np.uint8)  # use uint8 (0-255)
    
        plt.imshow(img)
        plt.show()
    

    然后,您可以通过调用render_as_image来呈现数组。

    render_as_image(data)
    

答案 1 :(得分:1)

要首先使用Matplotlib显示图像或任何其他绘图,您需要将MXNet NDArray转换为NumPy数组。

例如,a是将其转换为Numpy的MXNet NDArray,我们将执行b = a.asnumpy()。现在,您可以使用Matplotlib绘制/显示此b