Editing VOL
From BRL-CAD
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | A '''VOL''' primitive represents a three-dimensional grid of cells, also referred to as voxels, which are each either solid or empty. It is defined by a three-dimensional array of unsigned char values | + | A '''VOL''' primitive represents a three-dimensional grid of cells, also referred to as voxels, which are each either solid or empty. It is defined by a three-dimensional array of unsigned char values, where each value represents a cell that is solid if the value lies between the primitive's given upper and lower thresholds, inclusively. |
− | + | Specific information about the creation of a VOL primitive is available in the [[BRL-CAD Primitives#vol | list of primitives]]. | |
− | ==Inserting | + | ==Inserting volume data of a CT scan in MGED == |
− | Stanford hosts an [http://graphics.stanford.edu/data/voldata/ archive of | + | Stanford hosts an [http://graphics.stanford.edu/data/voldata/ archive of volume data] for testing purposes. |
For this example, let's use the first set of data: "CT study of a cadaver head". It contains 113 files of two-dimensional data with a resolution of 256x256. Each file represents one slice, so we'll need to concatenate them into one file to be able to import it into MGED. In addition, the data is in the form of 16-bit unsigned integers, so we'll need to use '''cv''' to convert it into unsigned chars. | For this example, let's use the first set of data: "CT study of a cadaver head". It contains 113 files of two-dimensional data with a resolution of 256x256. Each file represents one slice, so we'll need to concatenate them into one file to be able to import it into MGED. In addition, the data is in the form of 16-bit unsigned integers, so we'll need to use '''cv''' to convert it into unsigned chars. | ||
Line 20: | Line 20: | ||
$ cat $(ls -v scanslices/*) > scandata16 | $ cat $(ls -v scanslices/*) > scandata16 | ||
− | |||
− | |||
− | |||
− | |||
Convert ''scandata16'' from 16-bit little-endian unsigned integers to big-endian unsigned chars using '''cv''' and write the data to ''scandata8'': | Convert ''scandata16'' from 16-bit little-endian unsigned integers to big-endian unsigned chars using '''cv''' and write the data to ''scandata8'': | ||
Line 31: | Line 27: | ||
=== Importing into MGED === | === Importing into MGED === | ||
− | The data in ''scandata8'' should now be ready to be imported into MGED | + | The data in ''scandata8'' should now be ready to be imported into MGED. |
mged> in | mged> in | ||
Line 40: | Line 36: | ||
Enter lower threshold value: 8 255 | Enter lower threshold value: 8 255 | ||
Enter X, Y, Z dimensions of a cell: 1 1 1 | Enter X, Y, Z dimensions of a cell: 1 1 1 | ||
+ | |||
+ | ERROR: bad pointer 0x1cd74f0: s/b rt_ebm_internal(xf901b231), was rt_vol_internal(x987ba1d0), file /home/jordi/Escriptori/brlcad-7.24.2/src/librt/primitives/vol/vol.c, line 760 | ||
+ | |||
+ | Whoops. I must have done something wrong. |