ВТК - объясни простой код

Можете ли вы объяснить мне следующий простой код?

VolumeScalarOpacity->AddPoint(0.0, 0.0);
VolumeScalarOpacity->AddPoint(0.25, 0.0);
VolumeScalarOpacity->AddPoint(1.0,  0.1);

а также

VolumeGradientOpacity->AddPoint(0.0, 0.0);
VolumeGradientOpacity->AddPoint(1.0, 0.0);
VolumeGradientOpacity->AddPoint(90.0, 0.1);
VolumeGradientOpacity->AddPoint(900.0, 0.5);

где VolumeScalarOpacity и VolumeGradientOpacity - это тип функции vtkPiecewiseFunction... Я вижу, что нигде не объясняются эти методы...

Я изо всех сил пытаюсь сделать объем КТ... спасибо.

1 ответ

Решение

Функция vtkPiecewiseFunction определяет 1D кусочную функцию. Смотрите это из класса Документация: vtkPiecewiseFunction Documentation

Определяет кусочную функцию отображения. Это отображение позволяет добавлять контрольные точки и позволяет пользователю контролировать функцию между контрольными точками. Кусочная кривая Эрмита используется между контрольными точками, основываясь на параметрах резкости и средней точки. Резкость 0 дает кусочно-линейную функцию, а резкость 1 - кусочно-постоянную функцию. Средняя точка - это нормализованное расстояние между контрольными точками, в которых кривая достигает среднего значения Y. Значения средней точки и резкости, указанные при добавлении узла, используются для управления переходом к следующему узлу (значения последнего узла игнорируются). Вне диапазона узлов значения равны 0, если Clamping выключен, или ближайшей точке узла, если Clamping включен При использовании устаревших методов для добавления точек (которые не имеют параметров Sharpness и Midpoint) по умолчанию будет установлено значение Midpoint = 0,5 (на полпути между контрольными точками) и Sharpness = 0,0 (линейное).

Вы, кажется, используете его для визуализации объема. И код использует устаревший тип AddPoint. Таким образом, для вашего VolumeScalarOpacity он контролирует непрозрачность скаляров объема. Для вашего кода он создает функцию, которая оценивает 0,0 для скаляров от 0,0 до 0,25. Тогда ваша функция описывает линейный рост до 0,1 для скаляров>0,25 до 1,0. Если у вас есть ограничения на значения больше, чем 1,0 будет 0,1, в противном случае они будут 0,0.

Если у вас возникают проблемы с визуализацией данных, убедитесь, что ваша кусочная функция имеет значимые значения во всем скалярном диапазоне ваших данных. Также убедитесь, что ваши значения непрозрачности являются разумными. 0.1 не много и, возможно, вы не увидите, что вам нравится. Поэкспериментируйте со значениями, чтобы они соответствовали вашим потребностям.

Другие вопросы по тегам