ParaView可编程轮廓滤波器

2024-10-01 13:35:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个可编程的过滤器来提取等值面。我知道我可以手动输入多个Isosurfaces,然后通过一个过滤器将它们全部提取出来。问题是,我必须手动输入它们。在我的用例中,我有一堆要使用的isovalues,因此手工输入它们有点乏味。

我试过使用可编程过滤器,但我有点困在我得到的数据格式上。

到目前为止,我得到的是:

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是“无”的。当我使用pdo=self.GetOutput()然后我得到一个vtkImageData对象。它不能作为轮廓滤波器的输入连接。

我的理想解决方案是一段代码,我只需复制一个值列表,其中包含这些值的已渲染isosurfaces,最好是作为不同的对象,这样我就可以为它们上色并在当前RenderView中添加/删除它们。

我使用原始数据作为输入


Tags: 对象self过滤器手动用例手工数据格式等值
1条回答
网友
1楼 · 发布于 2024-10-01 13:35:12

您可以使用pythonshell来实现这一点。在管道浏览器中单击轮廓对象。然后,打开pythonshell(工具->pythonshell)。在shell中执行以下几行Python代码:

contour = GetActiveSource()
contour.Isosurfaces = [100.0, 200.0, 300.0]

相关问题 更多 >