Hi Fernando,
Thank you for the detailed system specs and
problem description.
That's an excellent system and I don't
forsee any issues running
Cleaver for future datasets.
The dataset you sent us doesn't work because
it is a single material
file with a non-signed indicator function:
Cleaver supports non-signed indicator
functions, but it also requires
at least two material files to produce a
non-empty mesh. If a single
material file is given, an "inverse"
indicator function is created
automatically by scaling the data by -1.
However, this only works
for signed-indicator functions.
There are at least two ways you could alter
your input to get your desired mesh.
a) You could modify test.nrrd such that
values range from -0.5 to +0.5,
instead of 0 to 1 as they currently do.
Cleaver would then generate a
suitable inverse mesh on the fly.
b) You could generate an inverse.nrrd file
unique to your input. In this case,
it looks like swapping the 0 and 1
labels would achieve this.
Other recently added documentation can be
found on the cleaver downloads page.
http://www.sci.utah.edu/download/cleaver
We'll also update the documentation to make
this single-input-file issue more
clear for the future. And please let us know
if you any more trouble with the
software. Good luck.
Cheers,
Jonathan Bronson
On 2/1/2013 11:44 PM, Fernando Quivira
wrote:
Dear Cleaver
developers:
My name is Fernando Quivira. I work with
Dana in the Breast Imaging Research Lab at
the Mass. General Hospital. I don't know how
much has Dana told you about what we do, but
we basically need meshing software to create
high quality meshes of breast tomosynthesis
data for our finite element simulations.
I started using Cleaver with simple
datasets, but I have encountered a couple of
problems. Here is the info I have compiled
for you
System details:
Ubuntu 12.04 -
64 bits
Nvidia GTX 480
GCC 4.6.3 (program did not work with 4.4)
48 GB RAM
(let me know if you need more system info)
Installation:
Everything
went smoothly
Usage:
I tried
writing NRRD files from Matlab. I found a
.m file in the Slicer plugin website, but
it did not work. Do you guys have Matlab
tools to write NRRD files?
Then, I wrote a simple NRRD writer.
However, cleaver was stuck while reading
the file. The file used a simple header:
NRRD0001
type: int8
dimension: 3
sizes: 441 280 95
encoding: raw
My next step was to save my data as a .mat
file, and use Seg3D to convert it to nrrd.
This seemed to work as Cleaver did not get
stuck in the reading file process.
Doing this with Seg3D was somewhat
difficult since it kept crashing with a
seg fault everytime I tried to write data
as NRRD. Only occasionally was I able to
do it.
Cleaver finished executing with the NRRD
data from Seg3D, but the matlab output is
empty. Cleaver log shows that the mesh
contains 0 elements.
The command I ran was:
cleaver -i
./test.nrrd -o test2 -f matlab
I have attached the data and results as a
.rar file.
test.mat contains the simple block to be
meshed. test.nrrd is the NRRD file from
Seg3D. the files test2.* are the outputs
from cleaver
Here is the output from the command line:
Reading
File: ./test.nrrd
Input Dimensions: 441 x 280 x 95
Creating Mesh with Volume Size [441,
280, 95]
Cuts Computed
Triples Computed
Quads Computed
Tets Generalized
Phase 1 Complete
Phase 2 Complete
Phase 3 Complete
Stenciling Complete
Mesh Construction Complete
Total Time: 0 s
Worst Angles:
min: 180
max: 0
Writing settings file:
test2.info
Writing mesh matlab file: test2.mat
Writing mesh ply file: test2.ply
Cleaning up.
Done.
I don't know what I'm doing wrong. Let me
know if there is more information you need.
Is there some documentation I can read
regarding cleaver usage?
thanks! I hope this is of help
- Fernando