Создание трехмерной карты поверхности из карты высот Skimage (2D numpy.ndarray) - PullRequest
2 голосов
/ 12 апреля 2019

В в учебном пособии по Сегментации лыжных магов был нанесен трехмерный график поверхности карты высот, сгенерированной с помощью функции sobel.

>>> from skimage.filters import sobel
>>> elevation_map = sobel(coins)

enter image description here

Вопрос: elevation_map представляется 2D numpy.ndarray.Как мы можем сгенерировать 3D карту, показанную с помощью этого?

1 Ответ

0 голосов
/ 12 апреля 2019

Это, вероятно, производится с использованием Paraview / VTK;

Попробуйте поиграть со следующим:

from skimage import data
from skimage.filters import sobel
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
from matplotlib import cm
from scipy.ndimage import zoom
coins = data.coins()
coins = zoom(coins, 10)

elevation_map = sobel(coins)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

m, n=elevation_map.shape
X, Y = np.meshgrid(np.arange(n), np.arange(m))

ax.plot_surface(X, Y, elevation_map, cmap=cm.viridis, antialiased=False)
ax.axis("off")
ax.set_facecolor('black')
plt.show()

enter image description here

...