Я пытаюсь создать программируемый фильтр для извлечения изоповерхностей. Я знаю, что могу вручную ввести несколько изоповерхностей и извлечь их все с помощью одного фильтра. Проблема в том, что мне приходится вводить их вручную. В моем случае у меня есть куча изозначений, которые я хочу использовать, и поэтому вводить их вручную довольно утомительно.
Я пытался использовать программируемый фильтр, но я как бы застрял в формате данных, которые я получаю.
Вот что у меня есть до сих пор:
pdi = self.GetPolyDataInput()
pdo = self.GetPolyDataOutput()
c = vtk.vtkContourFilter()
c.SetInputConnection(pdo)
c.SetValue(0, 0.01)
c.Update()
self.GetOutput().ShallowCopy(c.GetOutput())
Проблема в том, что pdo стоит "None", т.е. у меня нет PolyData. Когда я использую pdo = self.GetOutput(), я получаю объект vtkImageData. Что не работает как InputConnection для ContourFilter.
Моим идеальным решением был бы фрагмент кода, где мне просто нужно скопировать список значений с отрендеренными изоповерхностями для этих значений, предпочтительно в виде разных объектов, чтобы я мог их раскрасить и добавить/удалить из текущего RenderView.
Я использую необработанные данные в качестве входных данных