【发布时间】:2014-10-11 12:26:39
【问题描述】:
我正在用 python 编写脚本,它解析大约 500 个宽度为 1810px 和高度为 1808px 的图像(3d 对象的切片)。 我想从所有这些图像中写入点(原始颜色)并将它们保存为 vtk 文件格式。 出于测试目的,我修改了 vtk 中的示例:
import vtk
from vtk import *
#setup points and vertices
Points = vtk.vtkPoints()
Vertices = vtk.vtkCellArray()
for x in xrange(0, 1808):
for y in xrange(0, 1810):
for z in xrange(0, 544):
id = Points.InsertNextPoint(x, y, z)
Vertices.InsertNextCell(1)
Vertices.InsertCellPoint(id)
polydata = vtk.vtkPolyData()
polydata.SetPoints(Points)
polydata.SetVerts(Vertices)
polydata.Modified()
if vtk.VTK_MAJOR_VERSION <= 5:
polydata.Update()
writer = vtk.vtkXMLPolyDataWriter()
writer.SetFileName("TriangleColoredPoints.vtp")
if vtk.VTK_MAJOR_VERSION <= 5:
writer.SetInput(polydata)
else:
writer.SetInputData(polydata)
writer.Write()
现在它甚至没有读取图像,但问题是当我添加所有这些点时,我的内存不足。有没有办法分块保存这些点?
【问题讨论】:
-
您确定需要多数据吗?也许 vtkImage 会更好(参见stackoverflow.com/a/7667417/1136458 中的示例)。无论如何,这并不能解决内存问题