[MINC-users] [minctracc] segfault when using -measure option
Robert D. Vincent
robert.d.vincent at mcgill.ca
Sun Sep 25 07:28:57 EDT 2016
Thanks for the example, I'll look into it.
On Sun, Sep 25, 2016 at 4:13 AM, Mishkin Derakhshan <mishkind at gmail.com>
wrote:
> 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
> _______________________________________________
> MINC-users at bic.mni.mcgill.ca
> http://www.bic.mni.mcgill.ca/mailman/listinfo/minc-users
>
More information about the MINC-users
mailing list