XTK no cargará PUNTOS ESTRUCTURADOS VTK convertidos en un archivo NRRD

Estoy usando la biblioteca teem para convertir un archivo ASCII .vtk con PUNTOS ESTRUCTURADOS flotantes a nrrd. El archivo de salida parece ser un NRRD0001 sin procesar y he podido cargarlo correctamente en paraview, por lo que parece estar bien. Cuando cargo ese archivo en XTK, no tengo mensajes de error, pero no se muestra nada.

También intenté convertirlo a través de unu para tener una codificación gzipeada sin éxito:

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

Observé que los archivos nrrd de trabajo de XTK son del tipo NRRD0004.

¿Puedo tener que guardarlo con este formato? ¿Cómo puedo guardarlo en equipo como 0004?

Gracias por adelantado,

Andrea


Este es mi procedimiento simple de conversión:

#include <teem/nrrd.h>

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

ENCABEZADO del archivo VTK:

# 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

salida del archivo NRRD convertido:

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

visualizar el guión es lo mismo que 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();

preguntado el 03 de mayo de 12 a las 08:05

3 Respuestas

esto probablemente aún no sea compatible (el archivo .vtk).

¿Puede proporcionar una captura de pantalla de lo que desea lograr para que tengamos una idea de lo que desea hacer?

contestado el 06 de mayo de 12 a las 15:05

Tuve el mismo problema cuando traté de convertir archivos dicom a archivos nrrd. Noté que la ayuda en el comando unu make es más detallada que la ayuda de la página web unu make. En mi caso, utilicé el siguiente comando 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

En este caso, la clave para generar un archivo nrrd como 0004 es el uso de las opciones -dirs y -spc. ¡Espero que esto te ayude!

de la unu hacer ayuda:

-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)

Saludos,

P

contestado el 08 de mayo de 12 a las 18:05

Muchas gracias Sr. P Lo hice guardando en encabezado + datos y después de hacer un nuevo encabezado: teem-unu save -f "nrrd" -e "ascii" -i infile.vtk -o "./h0001.nhdr" - od "datafile.nrrd" y luego: teem-unu make -i ./datafile.nrrd -e "ascii" -en little -t float -s 102 53 80 -dirs "(3.01,0,0) (0,3.03,0 ,0,0,02.97) (XNUMX)" -spc LPS -o "./outfile.nrrd" - etjazz

Acabo de encontrar esto a través de google. Escribí unu y nrrd. Si XTK no puede cargar el archivo de manera útil, es una propiedad de cómo XTK maneja el formato nrrd, no de su archivo.

Solo pensé en señalar que para unu, no tiene que citar cada cadena, solo aquellas cadenas que contienen espacios.

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

funcionará igual de bien.

Respondido 21 Oct 12, 17:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.