Шаг 187.
Язык Python. Визуализация данных.
Библиотека Mayavi. Работа с pipeline. Работа с фильтрами (и еще продолжение)

    На этом шаге мы продолжим наше знакомство с фильтрами.

   

GreedyTerrainDecimation

    Аппроксимирует 2D-изображение набором треугольников, сохраняя их количество минимальным:

import numpy as np
from mayavi import mlab

x, y = np.mgrid[-2:2:0.1, -2:2:0.1]
z = np.cos(x * y) * np.sin(x * y)

src = mlab.pipeline.array2d_source(z)
gtd = mlab.pipeline.greedy_terrain_decimation(src)
mlab.pipeline.surface(gtd)

mlab.show()
Архив с файлом можно взять здесь.


Рис.1. Демонстрация работы фильтра GreedyTerrainDecimation

 

ImageChangeInformation

    Фильтр позволяет задать расположение координатных осей, растяжение по осям и т.п. без модификации самих данных.

 

MaskPoints

    Фильтр для формирования подвыборок данных.

 

PolyDataNormals

    Вычисляет нормали для входных данных, используется для сглаживания изображений и т.п.

    Для примера построим модель с большим количеством неровностей, для этого воспользуемся фильтром WarpScalar.

import numpy as np
from mayavi import mlab

z = np.random.rand(15, 15)

src = mlab.pipeline.array2d_source(z)
warp = mlab.pipeline.warp_scalar(src)
mlab.pipeline.surface(warp)

mlab.show()
Архив с файлом можно взять здесь.


Рис.2. Демонстрация работы фильтра WarpScalar

    Теперь сгладим неровности, добавив ещё один уровень фильтрации, с помощью PolyDataNormals:

import numpy as np
from mayavi import mlab

z = np.random.rand(15, 15)

src = mlab.pipeline.array2d_source(z)
warp = mlab.pipeline.warp_scalar(src)
poly = mlab.pipeline.poly_data_normals(warp)
mlab.pipeline.surface(poly)

mlab.show()
Архив с файлом можно взять здесь.


Рис.3. Демонстрация работы фильтра PolyDataNormals

    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг