Maverick/VisibleManTxtToMhd: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 72: Line 72:
  c_vm1027.fre.txt
  c_vm1027.fre.txt


You can process each file individually using the command:
=== Processing a single .txt file ===
 
You can process an individual file using, for example, the command:


  VisibleManTxtToMhd c_vm1013.fre.txt c_vm1013.fre.txt.mhd
  VisibleManTxtToMhd c_vm1013.fre.txt c_vm1013.fre.txt.mhd


That will create a file call c_vm1013.fre.txt.mhd that contains the following:
That will create a file called <em>c_vm1013.fre.txt.mhd</em> that contains the following:


  NDims = 3
  NDims = 3
Line 89: Line 91:
  c_vm1013.fre
  c_vm1013.fre


This files captures the dimensions, origin (Offset), orientation, and pixel spacing for the data contained in the file c_vm1013.fre.  The line "HeaderSize = -1" forces the data to be read from the end of the .fre file, thereby skipping an arbitrary-sized header.
That <em>c_vm1013.fre.txt.mhd</em> file captures the dimensions, origin (Offset), orientation, and pixel spacing for the data contained in the file c_vm1013.fre.  The line "HeaderSize = -1" forces the data to be read from the end of the .fre file, thereby skipping an arbitrary-sized header.
 
=== Processing multiple .txt files ===


More generally, you can create a for-loop to process all of the images in that directory.  If your shell is bash, the following for-loop will work:
You can create a for-loop to process all of the .txt files in a directory.  If your shell is bash, the following for-loop will work:


  for i in *txt; do ~/src/Maverick-VS9/bin/RelWithDebInfo/VisibleManTxtToMhd $i $i.mhd; done
  for i in *txt; do ~/src/Maverick-VS9/bin/RelWithDebInfo/VisibleManTxtToMhd $i $i.mhd; done
Line 143: Line 147:
c_vm1027.fre.txt
c_vm1027.fre.txt
c_vm1027.fre.txt.mhd
c_vm1027.fre.txt.mhd
c_vm1028.fre
c_vm1028.fre.txt
c_vm1028.fre.txt.mhd
c_vm1029.fre
c_vm1029.fre.txt
c_vm1029.fre.txt.mhd
c_vm1030.fre
c_vm1030.fre.txt
c_vm1030.fre.txt.mhd
c_vm1031.fre
c_vm1031.fre.txt
c_vm1031.fre.txt.mhd
.
.
.
</pre>
</pre>



Revision as of 17:22, 5 October 2008

Maverick: VisibleManTxtToMhd

Introduction

Use this program to import the Visible Man's data into a format that can be read by ITK and VTK-based applications.

Background

The Visible Man's CT data consists of a pair of files per CT slice:

  • The slice's data is stored in a binary-encoded format (.fre) that isn't readable by many programs
    • e.g., c_vm1013.fre, c_vm1014.fre, ...
    • The binary data (uncompressed) for the slice actually occurs at the end of this file
    • The header size for this file (the information before the data begins) is of variable length
  • A text file (.txt) that describes the acquisition parameters of the slice
    • e.g., c_vm1013.fre.txt, c_vm1014.fre.txt, ...
    • Describes the origin, spacing, directions, kEv, etc for each slice

Operation

This utility program will convert a list of .txt files from the visible man collection to corresponding .mhd files. Those .mhd files are part of the MetaImage standard which is supported by ITK, VTK, Slicer, Analyze, and numerous other packages. The .mhd files point to the .fre files and allow those corresponding slices to be read by MetaImage compliant libraries and applications.

Usage

At this time this utility program is only available with a command-line interface.

Maverick/bin/VisibleManTxtToMhd <input.txt> <output.mhd>

The first argument is the path to the visible man's .txt file to be converted.

The second argument is the output path to the .mhd file to be created.

Warning: The .mhd files only point to the binary data (in this case the .fre file) that they describe. The slice data is not duplicated in the .mhd file. Therefore, to use this .mhd file to read the slice data, the .mhd file must be created and/or placed in the same directory as the .fre file to which it points.

Hint: The .mhd files are text files. Any text editor can be used to create or modify these files. Additional MetaImage documentation is ONLINE.

Use cases

Linux

Consider a directory that contains a subset of the Visible Man's CT data:

c_vm1013.fre
c_vm1013.fre.txt
c_vm1014.fre
c_vm1014.fre.txt
c_vm1015.fre
c_vm1015.fre.txt
c_vm1016.fre
c_vm1016.fre.txt
c_vm1017.fre
c_vm1017.fre.txt
c_vm1018.fre
c_vm1018.fre.txt
c_vm1019.fre
c_vm1019.fre.txt
c_vm1020.fre
c_vm1020.fre.txt
c_vm1021.fre
c_vm1021.fre.txt
c_vm1022.fre
c_vm1022.fre.txt
c_vm1023.fre
c_vm1023.fre.txt
c_vm1024.fre
c_vm1024.fre.txt
c_vm1025.fre
c_vm1025.fre.txt
c_vm1026.fre
c_vm1026.fre.txt
c_vm1027.fre
c_vm1027.fre.txt

Processing a single .txt file

You can process an individual file using, for example, the command:

VisibleManTxtToMhd c_vm1013.fre.txt c_vm1013.fre.txt.mhd

That will create a file called c_vm1013.fre.txt.mhd that contains the following:

NDims = 3
DimSize = 512 512 1
HeaderSize = -1
Offset = 123 125 389
Orientation = -1 0 0 0 -1 0 0 0 1 
ElementType = MET_USHORT
ElementByteOrderMSB = True
ElementSpacing = 0.488281 0.488281 1
ElementDataFile = LIST
c_vm1013.fre

That c_vm1013.fre.txt.mhd file captures the dimensions, origin (Offset), orientation, and pixel spacing for the data contained in the file c_vm1013.fre. The line "HeaderSize = -1" forces the data to be read from the end of the .fre file, thereby skipping an arbitrary-sized header.

Processing multiple .txt files

You can create a for-loop to process all of the .txt files in a directory. If your shell is bash, the following for-loop will work:

for i in *txt; do ~/src/Maverick-VS9/bin/RelWithDebInfo/VisibleManTxtToMhd $i $i.mhd; done

The result of that command will be a new directory listing that resembles the following:

c_vm1013.fre
c_vm1013.fre.txt
c_vm1013.fre.txt.mhd
c_vm1014.fre
c_vm1014.fre.txt
c_vm1014.fre.txt.mhd
c_vm1015.fre
c_vm1015.fre.txt
c_vm1015.fre.txt.mhd
c_vm1016.fre
c_vm1016.fre.txt
c_vm1016.fre.txt.mhd
c_vm1017.fre
c_vm1017.fre.txt
c_vm1017.fre.txt.mhd
c_vm1018.fre
c_vm1018.fre.txt
c_vm1018.fre.txt.mhd
c_vm1019.fre
c_vm1019.fre.txt
c_vm1019.fre.txt.mhd
c_vm1020.fre
c_vm1020.fre.txt
c_vm1020.fre.txt.mhd
c_vm1021.fre
c_vm1021.fre.txt
c_vm1021.fre.txt.mhd
c_vm1022.fre
c_vm1022.fre.txt
c_vm1022.fre.txt.mhd
c_vm1023.fre
c_vm1023.fre.txt
c_vm1023.fre.txt.mhd
c_vm1024.fre
c_vm1024.fre.txt
c_vm1024.fre.txt.mhd
c_vm1025.fre
c_vm1025.fre.txt
c_vm1025.fre.txt.mhd
c_vm1026.fre
c_vm1026.fre.txt
c_vm1026.fre.txt.mhd
c_vm1027.fre
c_vm1027.fre.txt
c_vm1027.fre.txt.mhd

Windows

Install cygwin and follow the directions for linux.