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

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

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... Я нигде не вижу объяснения этих методов...

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


person flaviu2    schedule 25.06.2014    source источник
comment
Они используются для определения вашей передаточной функции (вы можете начать с простой константы, просто чтобы получить что-то видимое, а затем начать ее настраивать). Некоторая информация находится в документации vtkVolumeProperty: vtk.org/doc/nightly/ html/classvtkVolumeProperty.html#details   -  person holtavolt    schedule 25.06.2014
comment
Спасибо, я проверю вашу ссылку...   -  person flaviu2    schedule 03.07.2014


Ответы (1)


vtkPiecewiseFunction определяет одномерную кусочную функцию. См. это в документации класса: документация vtkPiecewiseFunction

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

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

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

person Taron    schedule 04.08.2014