Python图 - 堆叠的图像切片

Har*_*ime 5 python image matplotlib slice stacked

我有一系列基本的2D图像(现在简化为3),它们彼此相关,类似于电影中的帧:

在python中如何将这些切片堆叠在一起,如image1-> image2-> image-3?我正在使用pylab来显示这些图像.理想情况下,堆叠框架的等距视图会很好,或者是允许我在代码/渲染图像中旋转视图的工具.

任何协助赞赏.显示的代码和图片:

from PIL import Image
import pylab

fileName = "image1.png"
im = Image.open(fileName)
pylab.axis('off')
pylab.imshow(im)
pylab.show()
Run Code Online (Sandbox Code Playgroud)

Image1.png这里 Image2.png这里 Image3.png这里

tom*_*m10 7

你不能用imshow做到这一点,但你可以使用contourf,如果这对你有用.虽然它有点像kludge:

在此输入图像描述

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.gca(projection='3d')

x = np.linspace(0, 1, 100)
X, Y = np.meshgrid(x, x)
Z = np.sin(X)*np.sin(Y)

levels = np.linspace(-1, 1, 40)

ax.contourf(X, Y, .1*np.sin(3*X)*np.sin(5*Y), zdir='z', levels=.1*levels)
ax.contourf(X, Y, 3+.1*np.sin(5*X)*np.sin(8*Y), zdir='z', levels=3+.1*levels)
ax.contourf(X, Y, 7+.1*np.sin(7*X)*np.sin(3*Y), zdir='z', levels=7+.1*levels)

ax.legend()
ax.set_xlim3d(0, 1)
ax.set_ylim3d(0, 1)
ax.set_zlim3d(0, 10)

plt.show()
Run Code Online (Sandbox Code Playgroud)

3D中实现的文档就在这里.

正如ali_m建议的那样,如果这对您不起作用,如果您可以想象它可以使用VTk/MayaVi进行.

  • 您需要了解等高线图和图像之间的差异。使用喷射色图,您显示的图显然是一些单一值的伪彩色图像。与其从z值绘制虚假彩色图像,不如从z值绘制轮廓图。 (2认同)

ali*_*i_m 4

据我所知,matplotlib 没有 3D 等效项,imshow可以让您将 2D 数组绘制为 3D 轴内的平面。然而,mayavi似乎正好具有您正在寻找的功能