簡體   English   中英

將大量點寫入vtk文件格式

[英]writing huge number of points to vtk file format

我正在用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()

現在它甚至都沒有讀取圖像,但是問題是當我添加所有這些點時,我的內存不足了。 有什么辦法可以將這些點保存為塊嗎?

看起來您正在嘗試以大約1800x1800x500點(約16億點)的大小寫一個多數據。 數以百萬計的可能是有可能的,但數十億美元是不可能的,無論如何還沒有。 看起來您將需要減少問題的大小。 如果確實減小了問題的大小,請使用vtkXMLPolyDataWriter。 它有

writer->SetDataModeToBinary();
writer->SetCompressorTypeToZLib();

這對於將大型模型緊湊地寫入文件系統很有用。

或者,您可以將圖像存儲為上述注釋中提到的單個卷(1800x1800x500,vtkImageData),但是仍然會占用非常大的內存。 然后,您可以進行體繪制或行進立方體以獲取曲面等。但是,如果沒有更多詳細信息,您將嘗試實現目標,那么就很難再回答了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM