Я пытаюсь визуализировать некоторые трехмерные скалярные данные в Mayavi.Я могу визуализировать данные индивидуально с помощью виджета плоскости изображения.Моя цель - смешать два разных скалярных тома одинакового размера и интервала и отобразить их с помощью виджета плоскости изображения.
Я уже пробовал использовать виджет плоскости изображения.Меняя непрозрачность ipw, но безрезультатно, Mayavi вместо смешивания двух кубов обрабатывает их отдельно.
import dask.array as da
import numpy as np
import util
import matplotlib.pyplot as plt
import scipy
from mayavi import mlab
in_path = '/home/user/Desktop/Attribute_Extract_v_0.1/small_vol.hdf5'
in_path_2 = '/home/user/Desktop/Attribute_Extract_v_0.1/anu_malik.hdf5'
data = util.read(in_path)
data_2 = util.read(in_path_2)
shaped_data_2 = np.array(data_2)
shaped_data = np.array(data)
print(shaped_data.shape)
vm = np.percentile(shaped_data,99)
vm2 = np.percentile(shaped_data_2,99)
vm_3 = np.percentile(shaped_data_2,20)
vm_4 = np.percentile(shaped_data_2,80)
#Use mayavi to plot the 3D seismic cube with xline , inline and , Timeslice
source = mlab.pipeline.scalar_field(shaped_data)
source_2 = mlab.pipeline.scalar_field(shaped_data_2)
source.spacing = [1, 1, -1]
source_2.spacing = [1, 1, -1]
vol = mlab.pipeline.volume(source_2, vmin=vm_3, vmax=vm_4)
for axis in ['x', 'y', 'z']:
plane = mlab.pipeline.image_plane_widget(source_2,
plane_orientation='{}_axes'.format(axis),
slice_index=100, colormap='Spectral',opacity=0.2, vmin=-vm2, vmax=vm2 )
plane_2 = mlab.pipeline.image_plane_widget(source,
plane_orientation='{}_axes'.format(axis),
slice_index=100, colormap='seismic',opacity=0.5, vmin=-vm, vmax=vm )
# Flip colormap. you can choose to ignore
plane.module_manager.scalar_lut_manager.reverse_lut = True
mlab.outline()
mlab.show()
результаты:
Я хочудва тома, которые нужно смешать, и видим только один ipw, есть ли способ достичь этого.
тот же slice_index: