[MINC-users] [minctracc] segfault when using -measure option
Mishkin Derakhshan
mishkind at gmail.com
Sun Sep 25 04:13:45 EDT 2016
Hi,
I get a segfault whenever I try to use the -measure option.
Here is the simplest example to reproduce the bug.
$ minctracc -measure out.txt t1p.mnc.gz t1p.mnc.gz -transformation
identity.xfm
I'm using:
$ minctracc -version
The program <minctracc> was built from:
mni_autoreg 0.99.60
Here is some info on the files, but I don't think it has to do with the
files themselves as I've tried 100s. Maybe someone else can confirm.
$ mincinfo t1p.mnc.gz
file: t1p.mnc.gz
image: signed__ short 0 to 4095
image dimensions: zspace yspace xspace
dimension name length step start
-------------- ------ ---- -----
zspace 60 3 -93.0427
yspace 256 -0.976562 119.239
xspace 192 -0.976562 91.5716
$ cat identity.xfm
MNI Transform File
%Sun Sep 25 03:59:15 2016>>> param2xfm -scale 1 1 1 identity.xfm
%(mni_autoreg 0.99.60)
Transform_Type = Linear;
Linear_Transform =
1 0 0 0
0 1 0 0
0 0 1 0;
Looking at the print statements in the debug output from minctracc, and
comparing with minctracc/Main/measure_code.c I have a rough idea where the
segfault must be happening, but it's a little outside my depth at this
point.
Bug happens somewhere in here:
/* do var_ratio */
main_args.obj_function = vr_objective;
obj_func_val = measure_fit( data, model, mask_data, mask_model,
&main_args );
(void)fprintf (ofd, "%f - var_ratio\n",obj_func_val);
(void)fflush(ofd);
DEBUG_PRINT1 ( "%f - var_ratio\n",obj_func_val);
delete_volume(data);
delete_volume(model);
/* do ssc / zero-crossings */
status = input_volume( main_args.filenames.data, 3, default_dim_names,
NC_UNSPECIFIED, FALSE, 0.0, 0.0,
TRUE, &data, (minc_input_options *)NULL );
status = input_volume( main_args.filenames.model, 3, default_dim_names,
NC_UNSPECIFIED, FALSE, 0.0, 0.0,
TRUE, &model, (minc_input_options *)NULL );
main_args.obj_function = ssc_objective;
obj_func_val = measure_fit( data, model, mask_data, mask_model,
&main_args );
(void)fprintf (ofd, "%f - ssc\n",obj_func_val);
(void)fflush(ofd);
DEBUG_PRINT1 ( "%f - ssc\n",obj_func_val);
The good news is that the out.txt measure file still gets output, albeit
incomplete, but so does a large core file. Not to mention I can't sleep at
night having a seg fault that is built into the pipeline, er, at least one
that that I know about!
any help?
mishkin
Here is the debugging output from minctracc if that helps:
$ minctracc -measure out.txt t1p.mnc.gz t1p.mnc.gz -transformation
identity.xfm -debug
===== Debugging information from minctracc =====
Data filename = t1p.mnc.gz
Model filename = t1p.mnc.gz
Data mask filename =
Model mask filename =
Input xform name = identity.xfm
Measure filename = out.txt
Step size = 4.000000 4.000000 4.000000
Sub-lattice dia = 24.000000 24.000000 24.000000
Objective function = cross correlation (threshold = 0.000000 0.000000)
Transform linear = TRUE
Transform inverted? = FALSE
Transform type = 4
Transform matrix = 1.0000 0.0000 0.0000 0.0000
0.0000 1.0000 0.0000 0.0000
0.0000 0.0000 1.0000 0.0000
Transform center = 0.000 0.000 0.000
Transform rotation = 0.000 0.000 0.000
Transform trans = 0.000 0.000 0.000
Transform scale = 1.000 1.000 1.000
Source volume size: 60 by 256 by 192
Source voxel size = 3.000 -0.977 -0.977
Source min/max real range = 0.000 2083.000
Source min/max voxel= 0.000 2083.000
Target volume size: 60 by 256 by 192
Target voxel = 3.000 -0.977 -0.977
Target min/max real range= 0.000 2083.000
Target min/max voxel = 0.000 2083.000
using input transformation to get initial parameters:
Center of rot/scale not forced, will be set to : 0.000000 0.000000
0.000000
In set_up_lattice, xyzv[axes] = 2, 1, 0, -1
slice lim 0 44
row lim 1 62
col lim 1 46
thresh = 0.00000 0.00000
In set_up_lattice, xyzv[axes] = 2, 1, 0, -1
Source volume is smallest
Lattice step size = -4.000 -4.000 4.000
Lattice start = 88.104 129.917 -72.203
Lattice count = 46 62 45
128340 128340 128340 -> inf
inf - zscore
128340 128340 -> 0.00000000
0.000000 - xcorr
128340 128340 0 -> 0.20877945
0.208779 - var_ratio
Segmentation fault
More information about the MINC-users
mailing list