XTK不会将转换后的VTK STRUCTURED POINTS加载到NRRD文件中

时间:2012-05-03 07:02:32

标签: vtk xtk

我正在使用teem库将带有浮点STRUCTURED POINTS的ASCII .vtk文件转换为nrrd。 ouput上的文件似乎是原始NRRD0001,我已经能够在paraview中正确加载它,所以它似乎没问题。 当我在XTK中加载该文件时,我没有任何错误消息,但没有显示任何内容。

我还尝试通过unu将其转换为gzipped编码但没有成功:

teem-unu save -f "nrrd" -e "gzip" -i "./inputfile.vtk" -o "./outputfile.nrrd"

我注意到XTK工作的nrrd文件属于NRRD0004类型。

我可以用这种格式保存吗?我如何将其保存为0004?

提前致谢,

安德烈


这是我的转换简单程序:

#include <teem/nrrd.h>

Nrrd *nrrd = nrrdNew();
if (nrrdLoad(nrrd, argv[1], NULL)==0 && nrrdSave(argv[2], nrrd, NULL)==0)
       printf("success\n");

VTK文件HEADER:

# vtk DataFile Version 2.0
Image Builder vtk output
ASCII
DATASET STRUCTURED_POINTS
DIMENSIONS 30 20 20
SPACING 10.266666 8.000000 11.900000
ORIGIN -154.000000 -176.470001 -119.000000
POINT_DATA 12000
SCALARS volume_scalars float 1
LOOKUP_TABLE default

已转换的NRRD文件输出:

NRRD0001
# Complete NRRD file format specification at:
# http://teem.sourceforge.net/nrrd/format.html
content: Image Builder vtk output
type: float
dimension: 3
sizes: 30 20 20
spacings: 10.266666 8 11.9
axis mins: -154 -176.470001 -119
endian: little
encoding: raw

可视化脚本与http://lessons.goxtk.com/11/

相同
var r = new X.renderer('r');
    r.init();

    volume = new X.volume();
    volume.load('pocas.nrrd');             
    r.add(volume);        
    r.camera().setPosition(120,80,160);
    r.render();

3 个答案:

答案 0 :(得分:0)

这可能还不支持(.vtk文件)。

你能提供你想要完成的截图,这样我们就可以了解你想要做什么..

答案 1 :(得分:0)

当我尝试将dicom文件转换为nrrd文件时,我遇到了同样的问题。我注意到unu make命令中的帮助更详细,unu make网页帮助。在我的情况下,我使用了以下unu命令:

./unu make -i CT/patient_%03d.dcm 1 369 1 -e raw -bs -1 -en little -t short 
-s 369 369 369 -dirs "(0.4,0,0) (0,0.4,0) (0,0,0.4)" -spc LPS -o CT.nrrd

在这种情况下,生成nrrd文件为0004的关键是使用-dirs和-spc选项。我希望这能帮到你!

来自unu make help:

-dirs <v0 v1 ...> , --directions <v0 v1 ...> = (NOTE: must quote whole
                 vector list) The "space directions": the vectors in space
                 spanned by incrementing (by one) each axis index (the
                 column vectors of the index-to-world matrix transform),
                 OR, "none" for non-spatial axes. Give one vector per
                 axis. (Quoting around whole vector list, not
                 individually, is needed because of limitations in the
                 parser) (string)

  -spc <space> , --space <space> = identify the space (e.g. "RAS", "LPS")
                 in which the array conceptually lives, from the nrrdSpace
                 airEnum, which in turn determines the dimension of the
                 space. Or, use an integer to give the dimension of a
                 space that nrrdSpace doesn't know about By default (not
                 using this option), the enclosing space is set as
                 unknown. (string)

此致

P

答案 2 :(得分:0)

刚刚通过谷歌找到了这个。我写了unu和nrrd。如果XTK无法有效地加载文件,那么它的属性是XTK如何处理nrrd格式,而不是文件。

我想我会指出,对于unu,你不必引用每一个字符串 - 只包含那些包含空格的字符串。

 unu save -f nrrd -e gzip -i ./inputfile.vtk -o ./outputfile.nrrd

也会起作用。