Numpy三维数组医学图像显示

实现目标(记录)
显示从mask中裁取的patch块(三维数组ndarray)

  • 网上很多教程 显示三维图像 (三视图,simpleITK等)都不是我想要的效果
  • 基于VTK mayavi 都有些复杂
  • 而且我尝试过mayavi的方法,终于pip install mayavi成功,但是运行过程中报三个错
    1.failed to get wglChoosePixelFormatARB
    2.failed to get valid pixel format
    3.GLEW could not be initialized

上代码!

# labels为一个三维数组
def plot(labels):
    mask = np.where(labels > 0.3,labels,0)
    fig = plt.figure()
    ax = fig.add_subplot(111, projection="3d")
    # 设置三个轴的尺度
    ax.set_xlim([0, 64])
    ax.set_ylim([0, 64])
    ax.set_zlim([0, 64])
    ax.scatter(
        np.where(mask == 1)[2],
        np.where(mask == 1)[1],
        np.where(mask == 1)[0],
        zdir="z",
        c="red",
        alpha=0.5,
        marker=".",
    )
    # 为子图设置横轴标题
    ax.set_xlabel('X')  
    ax.set_ylabel('Y')
    ax.set_zlabel('Z')
    plt.show()

效果图~

Numpy三维数组医学图像显示_第1张图片
存在小瑕疵:在python中显示,无法旋转看图像
其实代码上主要就是在 ax.scatter中X,Y,Z上值的设定,没想到大半夜被我在草稿纸上推出来了(虽然就三行,但是思路不到位,就是白费),抱着试一试的心态,成功了。

你可能感兴趣的:(python,数字图像处理,python,图像处理)