Coder Social home page Coder Social logo

frankyeh / dsi-studio Goto Github PK

View Code? Open in Web Editor NEW
121.0 121.0 54.0 400.62 MB

A Tractography Tool for Diffusion MRI

Home Page: http://dsi-studio.labsolver.org

License: Other

C++ 98.15% Shell 0.20% QMake 0.25% Dockerfile 0.53% Batchfile 0.33% CMake 0.34% Cuda 0.19%
dsi-studio

dsi-studio's Introduction

dsi-studio's People

Contributors

frankyeh avatar gdevenyi avatar jhlegarreta avatar mattcieslak avatar mhough avatar michael-monaldi avatar ningfei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dsi-studio's Issues

orientation of nifti images, fibertracking vs view niftis

Hi Frank,

If the nifti image used as ROI for tracking has nifti orientation information, specifically an sform matrix whose (0,0) entry is negative signifying an x-flip, is that nifti info,
ie the xflip, applied to the image data when it is loaded as tracking region.
Playing around with different matrices it appears that it is.

The only evidence against is that the flip does not appear to be applied in the
View Images window when a nifti image is loaded.
Does the View Images viewer treat an image differently than the tracking parts
of the code ?

thanks
Kate

ps: will try to compile a few versions of the July/Aug code this week to
find when the Linux version started failing.

Converting DSI to HARDI

Hello! I am trying to find a command line tool that can convert a DSI scheme dwi image (dwi/bvecs/bvals) into HARDI scheme.

I have reached here via this article

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5021685/#B30

It mentions..

.. routine was implemented in DSI Studio (http://dsi-studio.labsolver.org), a publicly available and open source tool. The source code for scheme conversion can be found at https://github.com/frankyeh/DSI-Studio (search for “SchemeConverter”).

I've searched for SchemeConverter, but I am not sure how to go about pulling the SchemeConverter class out of this repo and successfully compiling them, and using them as a command line tool. Is it even possible? Or do you know of a better tools that is more suitable for this purpose?

Thank you!

[Command Line Tool] dt_threshold

Dear Professor Yeh,

I just download the latest version of DSI Studio. I am using the command line tool to track the fibers but I found there is one more parameter called dt_threshold=0. This parameter is not mentioned in your official DSI studio website. Can you please explain what is this parameter about?

Best,
Po-Yu Kao

Problem in fiber tracking step

Hello frankyeh:
I use dsi_studio for studying. But I found a problem on “Fiber Tracking” step. I used step1 to create .src file after I compiled dsi_studio. And in step2, I reconstruct DWI space to T1W. Then there is something wrong in step3, when I need to draw an area in region window. The polygon I’ve down will not be completely shown if I use free-hand drawing or polygon drawing. But if I use rectangle drawing, everything is OK.
dsi-problem
The left picture is the area I want, but the final view is the right picture.
Can you help me to find a way of dealing with this problem? I can provide the fib file I’m using if you want.

How to generate whole_brain.nii.gz from src file?

I want to get whole brain seeding results and I see it is really easy to do this in GUI, but I have a batch processing task so I need command line tool.
image
In command line I need whole_brain.nii for --seed as shown above, how can I get it?
Thanks.

DSI Studio Docker Image - QWidget Error During Tracking

There seems to be an error with the latest Docker image of DSI Studio, in which the following tracking command

docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $PWD:/data dsistudio/dsistudio:latest dsi_studio --action=trk --source=/data/dti_src.src.gz.gqi.1.25.fib.gz --seed_count=1000000 --track_id=Arcuate_Fasciculus_L --output=/data/99_test_TRACK.nii.gz

produces an error with QWidget creation:

DSI Studio Jun  8 2021, Fang-Cheng Yeh
source=/data/dti_src.src.gz.gqi.1.25.fib.gz
action=trk
loading /data/dti_src.src.gz.gqi.1.25.fib.gz...
otsu_threshold=0.6
fa_threshold=0
dt_threshold=0.2
turning_angle=0
step_size=0
smoothing=0
min_length=30
max_length=300
method=0
initial_dir=0
interpolation=0
seed_plan=0
random_seed=0
check_ending=0
tip_iteration=16
seed_count=1000000
thread_count=24
Consider using --action=atk for automatic fiber tracking
loading /opt/dsi-studio/dsi_studio_64/track/HCP1065.tt.gz
warping atlas tracks to subject space
running normalization
QWidget: Cannot create a QWidget without QApplication

I am unsure what change from the prior Docker image is now causing this error.

Thanks in advance for your help!

menubar in dicom_parser.ui not visible

Dear Frank,

First of all, thank you for making and maintaining this great tool!
I compile DSIStudio on linux mint and ubuntu OS. I noticed that in the last versions, you made a menubar in the "Step1: Open Source Images"-menu (dicom_parser.ui). I can see it's there in Qt Creator, but it does not show up in the actual dialog when compiled.
Some googling led me to this discussion. Inspired by that post, I looked and saw the nativeMenuBar-field was already false. However, it turns out that if you turn the defaultUp-field on and recompile, the menubar does show up. That solved my problem. I'm not sure how it will affect compilation on other platforms, but you might consider including it in the code if you want.

Best regards,

Steven

Compiling on Centos7

Hello,

I'm trying to compile DSI Studio on Centos7 with gcc6. I've downloaded tipl and boost, made folders for them in the repo clone, and run build_linux_red_hat.sh. Eventually I get:

Makefile:8619: recipe for target 'mainwindow.o' failed
make: *** [mainwindow.o] Error 1

I only see warnings in the terminal output though, are there extra steps outside of the tutorials needed to compile on Centos7?

Implement --output for dsi_studio --action=qc

It would be nice if it would be possible to specify an output directory for the qc operation just like for dsi_studio --action=src

dsi_studio --action=qc --source=my.src.gz --output=/foo/bar/my.qc.txt

Problem with OpenGL while running fibre visualisation in singularity container

Hi there,

Thanks for the amazing work that has been put into dsistudio. Really appreciate it.

I have been running into an issue with the OpenGL library when trying to run fibre visualisation (i.e. step 3) with singularity in a HPC environment. This seems to be very much related to the issue brought up here: frankyeh/TIPL#10. I've tried to implement the suggested solutions but to no avail. Does anyone know of any newer fix?

GUI crash opening nifti file

The GUI crashes (segmentation fault on Linux, runtime error: program requested to terminate in an unusual way on Windows) opening a nifti file using the "Open Images files" button in the 3D viewer of the fib file interface. Also, it seems to occur with Dec 2013 and newer versions (at least the Dec 18th 2013 and the newest exe that looked like it was updated 3 days ago), as the crash did not occur with July 2013 and November 2013 versions of the code.

Doesn't work anymore in cmd

In the past several months I have been using the software.
But maybe due to some exchanges caused by Windows update it seems that the software doesn't work anymore and return at once without any information when I call "dsi_sudio --action=src --source=a --output=a.src.gz" or any other command.
If I try "dsi_studio", the gui shows and works well, but I gotta piles of data so I cannot use gui to deal with them one by one.
Do you have any clues about how to solve this problem?
Thanks

Building a connectometry database - it worked without OFDFs?

Hi Frank -
( I hope you are well in these testing times. I also understand that people have other priorities at the moment so I'm not expecting an answer soon - I'll be raising a few query tickets so please look at them only when its convenient)

We have built a connectometry database. After starting to play with it we realised we needed to do a bit more reading about the ins and outs of using it - of course we should have done that before. So a few questions have arisen.

The tutorials say that, when running QSDR reconstruction we should use the "save ODF" option because this is needed for connectometry analyses later. We missed this first time round - I am concerned that we were however able to run the "construct a connectometry database" command from the gui on those inputs that didn't have the ODFs saved in them. Is that supposed to happen? Also, that database is likely to be wrong then, correct?

I am currently re-running the QSDR reconstruction with the --record_odf=1 flag and am getting outputs that are about 10x bigger than the previous ones, so I think that is working. (I can also see the ODFs in the data viewer now which I couldn't before).

I will try to build a database from the new data shortly . Please let me know if we are doing sensible things or not.

Thanks for your help

Andre'

Reconstruction output file name problem

I implement a workflow for all my MRI data: generate source file, reconstruct and then track fiber. Specifically, I run 'dsi_studio --action=rec --source=XXX.src.gz --method=1' to do DTI reconstruction and get the output file XXX.src.gz.dti.fib.gz.
But I encountered a problem that the command returned XXX.src.gz.021fx.dti.fib.gz for one of the source file. I don't think this source file is different from the others and I wonder why the file name included '.021fx'.

Implement --output for dsi_studio --action=rec

Similar to #50, it would also be useful it it was possible to specify an output directory for the reconstruction. Reason: It would be nice, if the outputs for --src, --rec, --trk all could have their own output directories. That would make it a bit more handy to structure the whole DSI-Studio Process.

Compilation errors with CentOS 6.9

Hi Frank

I am getting the following error from which I can't move forward. I am pretty sure that all header files are available in the correct location and the function calls are also right. Could you help me out? I downloaded the repository on Feb 19th, 2018.

Many thanks,
Singh

../src/tracking/tract/tracttablewidget.cpp: In member function 'void TractTableWidget::save_profile()':
../src/tracking/tract/tracttablewidget.cpp:510:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(currentRow() >= tract_models.size())
^
../src/tracking/tract/tracttablewidget.cpp: In member function 'void TractTableWidget::deep_learning_train()':
../src/tracking/tract/tracttablewidget.cpp:573:61: error: no matching function for call to 'image::ml::network_data<float, unsigned char>::save_to_file(const char*)'
cnn.cnn_data.save_to_file(filename.toStdString().c_str());
^
In file included from ../src/image/image.hpp:80:0,
from ../src/tracking/tract/tracttablewidget.h:7,
from ../src/tracking/tract/tracttablewidget.cpp:8:
../src/image/ml/cnn.hpp:807:10: note: candidate: template bool image::ml::network_data<value_type, label_type>::save_to_file(const char*) const [with io_type = io_type; value_type = float; label_type = unsigned char]
bool save_to_file(const char* file_name) const
^
../src/image/ml/cnn.hpp:807:10: note: template argument deduction/substitution failed:
../src/tracking/tract/tracttablewidget.cpp:573:61: note: couldn't deduce template parameter 'io_type'
cnn.cnn_data.save_to_file(filename.toStdString().c_str());

Compatibility with Trackvis

Hi,
I tried to load some .trk file and an fa file both produced with dsi studio(built from masre branch) into Trackvis and in multiple cases I tried the orientation was wrong.

I checked one of one trk file produced from dsi-studio and one produced from the Trackvis's diffusion toolkit using the nibabel.streamlines interface.

While of course the actual fiber tracts where not the same to compare the main differences was that you were using voxel_order=LPS instead of RAS used in trackvis and of course the related differences (first two diagonals of the affine are negative, fibers first two points are negative etc.).

If both software were using the same conventions I would expect that they could inter operate.

May I ask what are the conventions used in dsi-studio regarding to coordinate systems when exporting/importg trk files etc?

Problem in setting up ROIs for connectivity matrix

Hello Dr. Yeh

When I was trying to construct a connectivity matrix in native space, DSI studio fails to read the file list text file with ROI file name (one name per row):

The command was
dsi_studio --action=trk --source="/path/to/source.fib.gz" --method=0 --seed="/path/to/seed.nii.gz" --roa="/path/to/roa1.nii.gz" --roa2="/path/to/roa2.nii.gz" --otsu_threshold=0.7 --min_length=20 --max_length=400 --step_size=.5 --turning_angle=55 --fiber_count=100000 --seed_count=5000000 --connectivity=/path/to/roi_list.txt --connectivity_type=pass --connectivity_value=count,ncount,mean_length --output=no_file

and the roi_list.txt file was

seed1.nii.gz
seed2.nii.gz
seed3.nii.gz
seed4.nii.gz

And the output was:

DSI Studio Feb  3 2018, Fang-Cheng Yeh
loading /path/to/source...
fiber_count=100000
read region from /path/to/roa1.nii.gz
roa=/path/to/roa1.nii.gz
read region from /path/to/roa2.nii.gz
roa2=/path/to/roa2.nii.gz
read region from /path/to/seed.nii.gz
seed=/path/to/seed.nii.gz
turning_angle=55
fa_threshold=0.0608798
step_size=0.5
smoothing=1
min_length=20
max_length=400
tracking_method=0
initial direction=0
interpolation=0
voxelwise=0
thread_count=12
start tracking.
 A multishell diffusion scheme was used, and the b-values were 2000 ,3005 and 1990 s/mm2. The number of diffusion sampling directions were 90, 90, and 90, respectively. The in-plane resolution was 1.25 mm. The slice thickness was 1.25 mm. The diffusion data were reconstructed using generalized q-sampling imaging (Yeh et al., IEEE TMI, ;29(9):1626-35, 2010) with a diffusion sampling length ratio of 1. The restricted diffusion was quantified using restricted diffusion imaging (Yeh et al., MRM, 77:603�612 (2017)). A deterministic fiber tracking algorithm (Yeh et al., PLoS ONE 8(11): e80713) was used. An ROA was placed at /path/to/roa1.nii.gz (49,89,63) with a volume size of 7.6e+05 mm cubic. An ROA was placed at /path/to/roa2.nii.gz (88,1.2e+02,29) with a volume size of 6.7e+04 mm cubic. A seeding region was placed at /path/to/seed.nii.gz (92,48,45) with a volume size of 1.2e+04 mm cubic. The angular threshold was 55 degrees. The step size was 0.5 mm. The anisotropy threshold was 0.0608798. The fiber trajectories were smoothed by averaging the propagation direction with a percentage of the previous direction. The percentage was randomly selected from 0% to 95%. Tracks with length shorter than 20 or longer than 400 mm were discarded. A total of 100000 tracts were calculated.
finished tracking.
a total of 100000 tracts are generated
loading /path/to/roi_list.txt
/path/to/roi_list.txt is used as an MNI space ROI.
Subject normalization to MNI space.
loading roi_list...
program terminated due to exception:Cannot load atlas file

I wonder 1) why roi_list was still taken as an MNI space ROI 2) why dsi_studio failed to load the txt file roi_list.txt?

Thanks you for your time and efforts. It would be more than appreciated if you could help me solve this problem.

Installation issue, Ubuntu 18.04 LTS

Hi Frank,

During the make step, I continue to run into the error concerning regiontablewidget.o. Here is the last few lines from make

In file included from ./tipl/morphology/morphology.hpp:7:0,
                 from ./tipl/tipl.hpp:32,
                 from tracking/region/Regions.h:7,
                 from tracking/region/regiontablewidget.h:7,
                 from tracking/region/regiontablewidget.cpp:10:
./tipl/numerical/basic_op.hpp: In instantiation of ‘void tipl::histogram(const ImageType&, std::vector<unsigned int>&, typename ImageType::value_type, typename ImageType::value_type, unsigned int) [with ImageType = tipl::const_pointer_image<float, 3>; typename ImageType::value_type = float]’:
./tipl/segmentation/otsu.hpp:17:14:   required from ‘float tipl::segmentation::otsu_threshold(const ImageType&) [with ImageType = tipl::const_pointer_image<float, 3>]’
tracking/region/regiontablewidget.cpp:1238:60:   required from here
./tipl/numerical/basic_op.hpp:896:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if(index >= hist.size())
            ~~~~~~^~~~~~~~~~~~~~
./tipl/numerical/basic_op.hpp: In instantiation of ‘void tipl::change_endian(type&) [with type = long int]’:
./tipl/io/nifti.hpp:441:22:   required from ‘void tipl::io::nifti_base<input_interface, output_interface>::convert_to_small_endian2() [with input_interface = gz_istream; output_interface = gz_ostream]’
./tipl/io/nifti.hpp:508:41:   required from ‘bool tipl::io::nifti_base<input_interface, output_interface>::load_from_file(const char_type*) [with char_type = char; input_interface = gz_istream; output_interface = gz_ostream]’
tracking/region/regiontablewidget.cpp:528:63:   required from here
./tipl/numerical/basic_op.hpp:944:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (char i = 0; i < sizeof(type); ++i,--pdata)
                      ~~^~~~~~~~~
./tipl/numerical/basic_op.hpp:945:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
         temp[i] = *pdata;
In file included from ./libs/tracking/tracking_method.hpp:11:0,
                 from ./libs/tracking/tracking_thread.hpp:9,
                 from tracking/region/regiontablewidget.cpp:17:
./libs/tracking/basic_process.hpp: In instantiation of ‘void LocateVoxel::operator()(method&) [with method = TrackingMethod]’:
./libs/tracking/tracking_method.hpp:211:18:   required from ‘void TrackingMethod::operator()(Process) [with Process = LocateVoxel]’
/usr/include/boost/mpl/for_each.hpp:78:26:   required from ‘static void boost::mpl::aux::for_each_impl<false>::execute(Iterator*, LastIterator*, TransformFunc*, F) [with Iterator = boost::mpl::v_iter<boost::mpl::vector<LocateVoxel>, 0>; LastIterator = boost::mpl::v_iter<boost::mpl::vector<LocateVoxel>, 1>; TransformFunc = boost::mpl::identity<mpl_::na>; F = boost::reference_wrapper<TrackingMethod>]’
/usr/include/boost/mpl/for_each.hpp:105:18:   required from ‘void boost::mpl::for_each(F, Sequence*, TransformOp*) [with Sequence = boost::mpl::vector<LocateVoxel>; TransformOp = boost::mpl::identity<mpl_::na>; F = boost::reference_wrapper<TrackingMethod>]’
/usr/include/boost/mpl/for_each.hpp:118:46:   required from ‘void boost::mpl::for_each(F, Sequence*) [with Sequence = boost::mpl::vector<LocateVoxel>; F = boost::reference_wrapper<TrackingMethod>]’
./libs/tracking/tracking_method.hpp:216:42:   required from ‘void TrackingMethod::tracking(ProcessList) [with ProcessList = boost::mpl::vector<LocateVoxel>]’
./libs/tracking/tracking_method.hpp:248:13:   required from ‘bool TrackingMethod::start_tracking(bool) [with ProcessList = boost::mpl::vector<LocateVoxel>]’
./libs/tracking/tracking_method.hpp:374:57:   required from here
./libs/tracking/basic_process.hpp:45:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(char i = 0;i < next_voxels_index.size();++i)
                        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~
Makefile:3141: recipe for target 'regiontablewidget.o' failed
make: *** [regiontablewidget.o] Error 1

Any ideas? I'm using 7.4.0 version of gcc and g++ but have received the error using version 5 as well (following the instructions in http://www.nemotos.net/?p=1878).

segmentation fault after running dsi_studio

Hi, Frank,

After we finally successfully installed DSI Studio on our server, we still seems to have the following issues.

Issue 1: no pop-up window for fiber tracking on our server.

Issue 2 : segmentation fault when running in command line and performing csf calibration.
#dsi_studio --action=rec --source=data.src.gz --mask=nodif_brain_mask.nii.gz --method=4 --param0=1.25 --csf_calibration=1

we can run export and file format conversion using command line without a problem. we can perform reconstruction and csf calibration using GUI without a problem. If we don't perform csf calibration, we can run the reconstruction using command line:

dsi_studio --action=rec --source=data.src.gz --mask=nodif_brain_mask.nii.gz --method=4 --param0=1.25.

Any insights on this will be greatly appreciated.

Regards
Lingjie

123

Compiling issue with GCC 8

I was trying to build DSI Studio on Centos 7 with GCC 8.2.1. After I upgraded GCC from 7.3.1 to 8.2.1, compilation failed every time with error message like:

In file included from ../src/tipl/morphology/morphology.hpp:7,
                 from ../src/tipl/tipl.hpp:32,
                 from ../src/libs/vbc/vbc_database.h:5,
                 from ../src/mainwindow.h:6,
                 from ../src/main.cpp:9:
../src/tipl/numerical/basic_op.hpp: In instantiation of ‘void tipl::change_endian(type&) [with type = double]’:
../src/tipl/numerical/basic_op.hpp:974:22:   required from ‘void tipl::change_endian(datatype*, int) [with datatype = double]’
../src/tipl/io/dicom.hpp:218:90:   required from here
../src/tipl/numerical/basic_op.hpp:935:24: warning: comparison of integer expressions of different signedness: ‘char’ and ‘long unsigned int’ [-Wsign-compare]
     for (char i = 0; i < sizeof(type); ++i,--pdata)
                      ~~^~~~~~~~~~~~~~
../src/tipl/numerical/basic_op.hpp:936:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
         temp[i] = *pdata;
make: *** [Makefile:2502: main.o] Error 1

Each time, it failed at slightly different lines but I was unable to build it. Same issue happened on Fedora 28 with GCC 8.2.1. It is not a critical issue but I couldn't find the solution. Thanks!

Make docker container available for Windows

On the download page it says:

 LINUX 
 DSI Studio can run on Linux by using docker container or singularity

docker image: docker://dsistudio/dsistudio

docker run -ti --rm -e DISPLAY=$DISPLAY
-v /tmp/.X11-unix:/tmp/.X11-unix
-v $PWD:/data
dsistudio/dsistudio:latest

However, I would like to use Docker on Windows (my local laptop) just to try out a DSI-Studio-Pipeline on one or two dummy subjects. Are there plans to also implement a working container that works also on Windows?

Docker Ubuntu 18.04

Hi Frank,

First, thank you so much for your efforts in creating and maintaining DSI Studio. I am currently writing a paper for my PhD and centralizing all my computational pipelines into a single Docker image (and then build a Singularity image to run on our cluster). DSI Studio is a part of this pipeline. It would be nice to have all required software and dependencies in a single image. The problem is that the image is built on Ubuntu 18.04 and it seems the newer versions of DSI Studio installations is giving me problems - I believe in relation to Qt 5.12.

I'll be honest and say I do not understand everything about Qt, nor do I have complete knowledge of installing dependencies (like apt-get lib* files) in Dockerfiles. The Dockerfile you have on your GitHub works fine as is, but when I try to build under Ubuntu 18.04, I specifically have problems with the Dockerfile:

(line 44) RUN add-apt-repository ppa:beineri/opt-qt-5.12.2-xenial \

Where it seems this repository does not exist. I have made a container without DSI Studio and then tried installing it in the container itself through your recommendation link of http://www.nemotos.net/?p=1878. I hoped to back-track a Dockerfile recipe through this method.

I just cannot get it to work. Qt seems to be such an issue, possibly with installing in a Docker image itself - which is unfortunate because I only use DSI Studio through command line and have no need for a GUI

Things I have tried:

  1. Build a single Docker image under Ubuntu 16.04 instead, however my other software installations do not work.
  2. Switching my pipeline to python's Dipy, however, I cannot reproduce the streamlines/tractography files for connectivity analysis. I may be able to figure it out, but I am not as familiar with Dipy, nor does our lab have a history of using it. Our lab has previous publications using DSI Studio, so we have generally a better understanding of it and would like to keep using it

Moving forward, I think I have two options

  1. Build the Docker image under an older version of DSI Studio. My previous Docker images I have kept alive for the last year works with DSI Studio under Ubuntu 18.04. But it had installed it with the current version of DSI Studio at that time. I will see if I can alter the Dockerfile to build a version from a year ago
  2. Have separate Docker images. One for DSI Studio part of the pipeline. And one for everything else. This is not necessarily ideal, as I hoped to have one Docker image associated with the paper to facilitate reproducibility of my study.

This is not a huge deal. But I just wanted to bring up this issue since I have spent quite a few days full time figuring this out.
So the issue is really with Lines 44-52 of the Dockerfile to be built under Ubuntu 18.04. I am just wondering why this Qt 5.12 repository does not exist in Ubuntu 18.04 but it does in 16.04?

DSI-Studio with singularity: --source file does not exist

Dear Dr Frank Yeah,

I'm trying to run the code below:

singularity exec /usr/local/dsistudio/dsistudio.simg dsi_studio --action=ana --source=/usr/local/Lesion_Quantification_Toolkit/Support_Tools/Tractography_Atlas/HCP842_1mm.fib.gz --tract=/usr/local/Lesion_Quantification/Support_tools/Tractography_Atlas/all_tracts_1mm.trk.gz --output=out_file --connectivity=cfg.parcel_path --connectivity_type=cfg.con_typ --connectivity_threshold=0 --export=tdi

But I'm getting this error:

DSI Studio Mar 20 2021, Fang-Cheng Yeh
source=/usr/local/Lesion_Quantification_Toolkit/Support_Tools/Tractography_Atlas/HCP842_1mm.fib.gz
action=ana
loading /usr/local/Lesion_Quantification_Toolkit/Support_Tools/Tractography_Atlas/HCP842_1mm.fib.gz...
/usr/local/Lesion_Quantification_Toolkit/Support_Tools/Tractography_Atlas/HCP842_1mm.fib.gz does not exist. terminating...
Warning: --tract is not used. Please check command line syntax.
Warning: --output is not used. Please check command line syntax.
Warning: --connectivity is not used. Please check command line syntax.
Warning: --connectivity_type is not used. Please check command line syntax.
Warning: --connectivity_threshold is not used. Please check command line syntax.
Warning: --export is not used. Please check command line syntax.

I can't find what I'm doing wrong. Why it's saying the file does not exist it is in the folder?
Can you help me, please?

Fail to use parameter id in command line

I tried to use the method shown in the documentation using a parameter id to set the parameters, but it kept using default parameters.
image
I wonder what the problem is.
And I see we can export track parameters in GUI to .ini setting file, can I use it in command line?

DSI make error

System: ubuntu 18
gcc: v5.5
g++: v5.5
Error message shown below.
Make.log
The out put of make script attached.

connectometry/nn_connectometry_analysis.cpp:204:88: error: no matching function for call to ‘data_fold_for_cv(tipl::ml::network_data<float>&, std::vector<tipl::ml::network_data_proxy<float> >&, std::vector<tipl::ml::network_data_proxy<float> >&, size_t&, bool&)’ tipl::ml::data_fold_for_cv(fp_data,train_data,test_data,cv_fold,stratified_fold); ^ In file included from /home3/Software/DSI_studio/src/tipl/tipl.hpp:83:0, from /home3/Software/DSI_studio/src/connectometry/nn_connectometry_analysis.h:6, from /home3/Software/DSI_studio/src/connectometry/nn_connectometry_analysis.cpp:1: /home3/Software/DSI_studio/src/tipl/ml/cnn.hpp:704:6: note: candidate: template<class label_type> void tipl::ml::data_fold_for_cv(const tipl::ml::network_data<label_type>&, std::vector<tipl::ml::network_data_proxy<label_type> >&, std::vector<tipl::ml::network_data_proxy<label_type> >&, int) void data_fold_for_cv(const network_data<label_type>& rhs, ^~~~~~~~~~~~~~~~ /home3/Software/DSI_studio/src/tipl/ml/cnn.hpp:704:6: note: template argument deduction/substitution failed: /home3/Software/DSI_studio/src/connectometry/nn_connectometry_analysis.cpp:204:88: note: candidate expects 4 arguments, 5 provided tipl::ml::data_fold_for_cv(fp_data,train_data,test_data,cv_fold,stratified_fold);

track selection by angle

Hi Frank,

What is tjhe keyboard shortcut for the Oct31 "track selections consider
incoming angle" update ? Thanks for that update !

Kate

Trouble compiling on Ubuntu 14.04.4 LTS 64bit / GCC 4.8

I'm trying to build your software in a environment as the subject, and following the instructions at http://dsi-studio.labsolver.org/dsi-studio-download/compile-dsi-studio-on-windows-mac-linux .

After some code crunching, full of warning, i get:

g++ -c -m64 -pipe -fpermissive -O2 -std=c++11 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../../../lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I../src -I../src/libs -I../src/libs/dsi -I../src/libs/tracking -I../src/libs/mapping -I../../../include/qt5 -I../../../include/qt5/QtPrintSupport -I../../../include/qt5/QtOpenGL -I../../../include/qt5/QtWidgets -I../../../include/qt5/QtGui -I../../../include/qt5/QtCore -I. -I. -I. -o tract_model.o ../src/libs/tracking/tract_model.cpp
[...]
In file included from ../src/image/morphology/morphology.hpp:7:0,
                 from ../src/image/image.hpp:31,
                 from ../src/libs/tracking/roi.hpp:4,
                 from ../src/libs/tracking/tract_model.cpp:8:
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(type&) [with type = double]’:
../src/image/numerical/basic_op.hpp:826:34:   required from ‘void image::change_endian(datatype*, size_type) [with datatype = double; size_type = long unsigned int]’
../src/image/io/dicom.hpp:162:85:   required from here
../src/image/numerical/basic_op.hpp:787:13: warning: array subscript has type ‘char’ [-Wchar-subscripts]
         temp[i] = *pdata;
             ^
../src/image/numerical/basic_op.hpp:788:11: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     value = *(type*)temp;
           ^
make: *** [tract_model.o] Errore 1

Looking at the forum, i've tried also with gcc 4.6 (compilation stops early) and using -std=c++11 or -std=c++0x, nothing resolutive.

Can you help me? Thanks.

Typo in Diffusion MRI Connectometry GUI

There is a GUI typo in the build compiled from the master branch.

Under diffusion MRI Connectometry, STEP 1. ... to create a tempalte or...

tempalte -> template

Trouble installing DSI-Studio

Hi, Frankey,

I have upgraded the gcc version to 4.9 and even tried gcc version of 5.3 and enable -std=c++11 by adding flag to CXXFLAGS. But still I have failed to install your software on my RedHat 7.2 machine.

I have referred to tons of websites and cannot solve the issue, and by referring to your replies to other posts, every time I will delete the entire folders and install from scratch, thus copying the files over and install again won't work for me. And the error has been consistently about the dicom_parser.o.

Looking forward to your favorable reply.

Regards
Lingjie

[root@hzlserver3 build]# make
/usr/lib64/qt5/bin/uic ../src/mainwindow.ui -o ui_mainwindow.h
/usr/lib64/qt5/bin/uic ../src/tracking/tracking_window.ui -o ui_tracking_window.h
/usr/lib64/qt5/bin/uic ../src/reconstruction/reconstruction_window.ui -o ui_reconstruction_window.h
/usr/lib64/qt5/bin/uic ../src/dicom/dicom_parser.ui -o ui_dicom_parser.h
/usr/lib64/qt5/bin/uic ../src/simulation.ui -o ui_simulation.h
/usr/lib64/qt5/bin/uic ../src/view_image.ui -o ui_view_image.h
/usr/lib64/qt5/bin/uic ../src/manual_alignment.ui -o ui_manual_alignment.h
/usr/lib64/qt5/bin/uic ../src/tracking/tract_report.ui -o ui_tract_report.h
/usr/lib64/qt5/bin/uic ../src/tracking/color_bar_dialog.ui -o ui_color_bar_dialog.h
../src/tracking/color_bar_dialog.ui: Warning: Z-order assignment: '' is not a valid widget.
/usr/lib64/qt5/bin/uic ../src/tracking/connectivity_matrix_dialog.ui -o ui_connectivity_matrix_dialog.h
/usr/lib64/qt5/bin/uic ../src/tracking/atlasdialog.ui -o ui_atlasdialog.h
/usr/lib64/qt5/bin/uic ../src/dicom/motion_dialog.ui -o ui_motion_dialog.h
/usr/lib64/qt5/bin/uic ../src/filebrowser.ui -o ui_filebrowser.h
../src/filebrowser.ui: Warning: The name 'layoutWidget' (QWidget) is already in use, defaulting to 'layoutWidget1'.
/usr/lib64/qt5/bin/uic ../src/connectometry/createdbdialog.ui -o ui_createdbdialog.h
/usr/lib64/qt5/bin/uic ../src/connectometry/individual_connectometry.ui -o ui_individual_connectometry.h
/usr/lib64/qt5/bin/uic ../src/connectometry/match_db.ui -o ui_match_db.h
/usr/lib64/qt5/bin/uic ../src/connectometry/db_window.ui -o ui_db_window.h
/usr/lib64/qt5/bin/uic ../src/connectometry/group_connectometry.ui -o ui_group_connectometry.h
g++ -c -pipe -fpermissive -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../src -I. -I../src/libs -I../src/libs/dsi -I../src/libs/tracking -I../src/libs/mapping -I../../../../include/qt5 -I../../../../include/qt5/QtOpenGL -I../../../../include/qt5/QtPrintSupport -I../../../../include/qt5/QtWidgets -I../../../../include/qt5/QtGui -I../../../../include/qt5/QtCore -I. -I. -I../../../../lib64/qt5/mkspecs/linux-g++ -o main.o ../src/main.cpp
In file included from ../src/image/morphology/morphology.hpp:7:0,
from ../src/image/image.hpp:31,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/numerical/basic_op.hpp: In function ‘void image::change_endian(type&)’:
../src/image/numerical/basic_op.hpp:815:15: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = pdata;
^
In file included from ../src/image/image.hpp:34:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/numerical/transformation.hpp: In function ‘void image::create_affine_transformation_matrix(input_rotation_iter, input_shift_iter, output_iter, image::vdim<3u>)’:
../src/image/numerical/transformation.hpp:439:68: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename std::iterator_traits<output_iter>::value_type value_type;
^
In file included from ../src/image/image.hpp:47:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/io/io.hpp: In member function ‘void image::io::volume::change_orientation(bool, bool, bool)’:
../src/image/io/io.hpp:45:36: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if(xyz[dim_order[index]])
^
../src/image/io/io.hpp: In member function ‘bool image::io::volume::load_from_files(const string_list_type&, unsigned int)’:
../src/image/io/io.hpp:107:46: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr dicom_header(new dicom);
^
../src/image/io/io.hpp:118:46: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr nifti_header(new nifti);
^
In file included from ../src/image/image.hpp:51:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/io/mat.hpp: In constructor ‘image::io::mat_matrix::mat_matrix(const string&)’:
../src/image/io/mat.hpp:92:18: warning: ‘image::io::mat_matrix::namelen’ will be initialized after [-Wreorder]
unsigned int namelen;
^
../src/image/io/mat.hpp:91:17: warning: ‘std::string image::io::mat_matrix::name’ [-Wreorder]
std::string name;
^
../src/image/io/mat.hpp:115:5: warning: when initialized here [-Wreorder]
mat_matrix(const std::string& name_):type(0),rows(0),cols(0),namelen((unsigned int)name_.size()+1),name(name_),data_ptr(0) {}
^
In file included from ../src/image/image.hpp:51:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/io/mat.hpp: In member function ‘bool image::io::mat_read_base<input_interface>::load_from_file(const char_type
, unsigned int, std::string)’:
../src/image/io/mat.hpp:387:45: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
../src/image/io/mat.hpp: In member function ‘bool image::io::mat_read_base<input_interface>::load_from_file(const char_type*)’:
../src/image/io/mat.hpp:407:45: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
../src/image/io/mat.hpp: In member function ‘void image::io::mat_read_base<input_interface>::add(const char*, const Type*, unsigned int, unsigned int)’:
../src/image/io/mat.hpp:419:41: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
In file included from ../src/image/image.hpp:65:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/reg/linear.hpp: In function ‘void image::reg::get_bound(const image_type1&, const image_type2&, const transform_type&, transform_type&, transform_type&, image::reg::reg_type)’:
../src/image/reg/linear.hpp:321:49: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename transform_type::value_type value_type;
^
In file included from ../src/image/reg/lddmm.hpp:5:0,
from ../src/image/image.hpp:66,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/numerical/dif.hpp: In function ‘void image::jacobian_determinant_dis(const image::basic_image<PixelType, 3u>&, DetType&)’:
../src/image/numerical/dif.hpp:187:42: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename DetType::value_type value_type;
^
In file included from ../src/image/image.hpp:83:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/ml/cnn.hpp: In member function ‘void image::ml::basic_layer::initialize_weight(image::uniform_dist&)’:
../src/image/ml/cnn.hpp:105:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < weight.size(); ++i)
^
../src/image/ml/cnn.hpp: At global scope:
../src/image/ml/cnn.hpp:136:46: warning: unused parameter ‘dE_da’ [-Wunused-parameter]
virtual void calculate_dwdb(const float* dE_da,
^
../src/image/ml/cnn.hpp:137:48: warning: unused parameter ‘prev_out’ [-Wunused-parameter]
const float* prev_out,
^
../src/image/ml/cnn.hpp:138:55: warning: unused parameter ‘dweight’ [-Wunused-parameter]
std::vector& dweight,
^
../src/image/ml/cnn.hpp:139:55: warning: unused parameter ‘dbias’ [-Wunused-parameter]
std::vector& dbias){}
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:277:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < o2w_1i.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::calculate_dwdb(const float*, const float*, std::vector<float, std::allocator >&, std::vector<float, std::allocator >&)’:
../src/image/ml/cnn.hpp:287:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < w2o_1.size(); i++)
^
../src/image/ml/cnn.hpp:292:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < w2o_1i.size();++j)
^
../src/image/ml/cnn.hpp:297:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < b2o.size(); i++)
^
../src/image/ml/cnn.hpp:301:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < outs.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::back_propagation(float*, float*, const float*)’:
../src/image/ml/cnn.hpp:315:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < i2w_1i.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::max_pooling_layer::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:398:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < o2i.size(); i++)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::max_pooling_layer::back_propagation(float*, float*, const float*)’:
../src/image/ml/cnn.hpp:415:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < o2i.size(); i++)
^
../src/image/ml/cnn.hpp:427:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < i2o.size(); i++)
^
../src/image/ml/cnn.hpp: In constructor ‘image::ml::connection_table::connection_table(int, int)’:
../src/image/ml/cnn.hpp:475:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int y = 0;y < c.height();++y)
^
../src/image/ml/cnn.hpp: In constructor ‘image::ml::convolutional_layer::convolutional_layer(image::ml::activation_type, int, const image::ml::connection_table&)’:
../src/image/ml/cnn.hpp:498:9: warning: ‘image::ml::convolutional_layer::kernel_size’ will be initialized after [-Wreorder]
int kernel_size;
^
../src/image/ml/cnn.hpp:495:22: warning: ‘image::ml::connection_table image::ml::convolutional_layer::connection’ [-Wreorder]
connection_table connection;
^
../src/image/ml/cnn.hpp:500:5: warning: when initialized here [-Wreorder]
convolutional_layer(activation_type af_,int kernel_size_,const connection_table& connection_ = connection_table())
^
In file included from ../src/image/image.hpp:83:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::to_image(image::color_image&, std::vector<float, std::allocator >, int, int)’:
../src/image/ml/cnn.hpp:829:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < layers.size();++i)
^
../src/image/ml/cnn.hpp:835:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(I2.width() > max_width)
^
../src/image/ml/cnn.hpp:842:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < I2.size();++j)
^
../src/image/ml/cnn.hpp:864:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:876:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < Iv.size();++j)
^
../src/image/ml/cnn.hpp:894:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:901:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(i < layers.size())
^
../src/image/ml/cnn.hpp:910:87: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
image::draw(Is[i],I,image::geometry<2>(1,cur_height + (Is[i].height() < layer_height ? (layer_height- Is[i].height())/2: 0)));

../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::save_to_file(const char*)’:
../src/image/ml/cnn.hpp:1008:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:1013:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(i < layers.size())
^
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:1078:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0;k < layers.size();++k)
^
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::initialize_training()’:
../src/image/ml/cnn.hpp:1104:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < layers.size();++j)
^
../src/image/ml/cnn.hpp: In lambda function:
../src/image/ml/cnn.hpp:1142:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0;k < dweight.size();++k)
^
In file included from ../src/image/image.hpp:86:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/vis/color_map.hpp: In member function ‘const image::vector<3>& image::color_map::operator[](unsigned int) const’:
../src/image/vis/color_map.hpp:58:89: warning: left operand of comma operator has no effect [-Wunused-value]
const image::vector<3,float>& operator[](unsigned int index) const{return color[255,index];}
^
In file included from ../src/cmd/cnt.cpp:3:0,
from ../src/main.cpp:16:
../src/connectometry/group_connectometry.hpp: At global scope:
../src/connectometry/group_connectometry.hpp:52:31: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<stat_model> model;
^
In file included from ../src/main.cpp:16:0:
../src/cmd/cnt.cpp: In function ‘int cnt()’:
../src/cmd/cnt.cpp:103:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < vbc->vbc->threads.size();++i)
^
../src/main.cpp: In function ‘QStringList search_files(QString, QString)’:
../src/main.cpp:38:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int i = 0;i < dir_list.size();++i)
^
../src/main.cpp:42:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int index = 0;index < new_list.size();++index)
^
../src/main.cpp:45:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < file_list.size();++index)
^
In file included from ../src/image/numerical/transformation.hpp:3:0,
from ../src/image/image.hpp:34,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/numerical/matrix.hpp: In instantiation of ‘void image::mat::eigen_decomposition_sym(input_iterator, output_iterator1, output_iterator2, const dym_type&) [with input_iterator = __gnu_cxx::__normal_iterator<double*, std::vector >; output_iterator1 = __gnu_cxx::normal_iterator<double*, std::vector >; output_iterator2 = gnu_cxx::normal_iterator<double*, std::vector >; dym_type = image::dyndim]’:
../src/image/ml/em.hpp:33:108: required from here
../src/image/numerical/matrix.hpp:1796:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0;k < i;++k,Vrowk += dim)
^
../src/image/numerical/matrix.hpp:1805:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0;k < i;++k,Vrowk += dim)
^
../src/image/numerical/matrix.hpp:1827:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int l = 0,iter = 0;l < dim && iter < 30;++iter)
^
In file included from ../src/image/ml/cnn.hpp:26:0,
from ../src/image/image.hpp:83,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/utility/multi_thread.hpp: In instantiation of ‘image::par_for(T, Func, int)::<lambda()> [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’:
../src/image/utility/multi_thread.hpp:11:91: required from ‘struct image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]::<lambda()>’
../src/image/utility/multi_thread.hpp:15:10: required from ‘void image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’
../src/image/ml/cnn.hpp:1152:10: required from here
../src/image/utility/multi_thread.hpp:13:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = id; i < size; i += thread_count)
^
../src/image/utility/multi_thread.hpp: In instantiation of ‘void image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’:
../src/image/ml/cnn.hpp:1152:10: required from here
../src/image/utility/multi_thread.hpp:17:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < size; i += thread_count)
^
In file included from ../src/image/image.hpp:69:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/reg/reg.hpp: In instantiation of ‘image::reg::normalization<value_type>::normalization() [with value_type = double]’:
../src/libs/tracking/fib_data.hpp:145:33: required from here
../src/image/reg/reg.hpp:23:9: warning: ‘image::reg::normalization::prog’ will be initialized after [-Wreorder]
int prog;
^
../src/image/reg/reg.hpp:19:10: warning: ‘bool image::reg::normalization::has_T’ [-Wreorder]
bool has_T;
^
../src/image/reg/reg.hpp:28:5: warning: when initialized here [-Wreorder]
normalization(void):prog(0),has_T(false){}
^
In file included from ../src/image/morphology/morphology.hpp:7:0,
from ../src/image/image.hpp:31,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/main.cpp:9:
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(type&) [with type = double]’:
../src/image/numerical/basic_op.hpp:853:34: required from ‘void image::change_endian(datatype*, size_type) [with datatype = double; size_type = long unsigned int]’
../src/image/io/dicom.hpp:162:85: required from here
../src/image/numerical/basic_op.hpp:814:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (char i = 0; i < sizeof(type); ++i,--pdata)
^
../src/image/numerical/basic_op.hpp:815:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = *pdata;
^
g++ -c -pipe -fpermissive -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../src -I. -I../src/libs -I../src/libs/dsi -I../src/libs/tracking -I../src/libs/mapping -I../../../../include/qt5 -I../../../../include/qt5/QtOpenGL -I../../../../include/qt5/QtPrintSupport -I../../../../include/qt5/QtWidgets -I../../../../include/qt5/QtGui -I../../../../include/qt5/QtCore -I. -I. -I../../../../lib64/qt5/mkspecs/linux-g++ -o mainwindow.o ../src/mainwindow.cpp
In file included from ../src/image/morphology/morphology.hpp:7:0,
from ../src/image/image.hpp:31,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/numerical/basic_op.hpp: In function ‘void image::change_endian(type&)’:
../src/image/numerical/basic_op.hpp:815:15: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = *pdata;
^
In file included from ../src/image/image.hpp:34:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/numerical/transformation.hpp: In function ‘void image::create_affine_transformation_matrix(input_rotation_iter, input_shift_iter, output_iter, image::vdim<3u>)’:
../src/image/numerical/transformation.hpp:439:68: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename std::iterator_traits<output_iter>::value_type value_type;
^
In file included from ../src/image/image.hpp:47:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/io/io.hpp: In member function ‘void image::io::volume::change_orientation(bool, bool, bool)’:
../src/image/io/io.hpp:45:36: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if(xyz[dim_order[index]])
^
../src/image/io/io.hpp: In member function ‘bool image::io::volume::load_from_files(const string_list_type&, unsigned int)’:
../src/image/io/io.hpp:107:46: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr dicom_header(new dicom);
^
../src/image/io/io.hpp:118:46: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr nifti_header(new nifti);
^
In file included from ../src/image/image.hpp:51:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/io/mat.hpp: In constructor ‘image::io::mat_matrix::mat_matrix(const string&)’:
../src/image/io/mat.hpp:92:18: warning: ‘image::io::mat_matrix::namelen’ will be initialized after [-Wreorder]
unsigned int namelen;
^
../src/image/io/mat.hpp:91:17: warning: ‘std::string image::io::mat_matrix::name’ [-Wreorder]
std::string name;
^
../src/image/io/mat.hpp:115:5: warning: when initialized here [-Wreorder]
mat_matrix(const std::string& name
):type(0),rows(0),cols(0),namelen((unsigned int)name
.size()+1),name(name
),data_ptr(0) {}
^
In file included from ../src/image/image.hpp:51:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/io/mat.hpp: In member function ‘bool image::io::mat_read_base<input_interface>::load_from_file(const char_type*, unsigned int, std::string)’:
../src/image/io/mat.hpp:387:45: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
../src/image/io/mat.hpp: In member function ‘bool image::io::mat_read_base<input_interface>::load_from_file(const char_type*)’:
../src/image/io/mat.hpp:407:45: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
../src/image/io/mat.hpp: In member function ‘void image::io::mat_read_base<input_interface>::add(const char*, const Type*, unsigned int, unsigned int)’:
../src/image/io/mat.hpp:419:41: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
In file included from ../src/image/image.hpp:65:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/reg/linear.hpp: In function ‘void image::reg::get_bound(const image_type1&, const image_type2&, const transform_type&, transform_type&, transform_type&, image::reg::reg_type)’:
../src/image/reg/linear.hpp:321:49: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename transform_type::value_type value_type;
^
In file included from ../src/image/reg/lddmm.hpp:5:0,
from ../src/image/image.hpp:66,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/numerical/dif.hpp: In function ‘void image::jacobian_determinant_dis(const image::basic_image<PixelType, 3u>&, DetType&)’:
../src/image/numerical/dif.hpp:187:42: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename DetType::value_type value_type;
^
In file included from ../src/image/image.hpp:83:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/ml/cnn.hpp: In member function ‘void image::ml::basic_layer::initialize_weight(image::uniform_dist&)’:
../src/image/ml/cnn.hpp:105:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < weight.size(); ++i)
^
../src/image/ml/cnn.hpp: At global scope:
../src/image/ml/cnn.hpp:136:46: warning: unused parameter ‘dE_da’ [-Wunused-parameter]
virtual void calculate_dwdb(const float* dE_da,
^
../src/image/ml/cnn.hpp:137:48: warning: unused parameter ‘prev_out’ [-Wunused-parameter]
const float* prev_out,
^
../src/image/ml/cnn.hpp:138:55: warning: unused parameter ‘dweight’ [-Wunused-parameter]
std::vector& dweight,
^
../src/image/ml/cnn.hpp:139:55: warning: unused parameter ‘dbias’ [-Wunused-parameter]
std::vector& dbias){}
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:277:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < o2w_1i.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::calculate_dwdb(const float*, const float*, std::vector<float, std::allocator >&, std::vector<float, std::allocator >&)’:
../src/image/ml/cnn.hpp:287:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < w2o_1.size(); i++)
^
../src/image/ml/cnn.hpp:292:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < w2o_1i.size();++j)
^
../src/image/ml/cnn.hpp:297:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < b2o.size(); i++)
^
../src/image/ml/cnn.hpp:301:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < outs.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::back_propagation(float*, float*, const float*)’:
../src/image/ml/cnn.hpp:315:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < i2w_1i.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::max_pooling_layer::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:398:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < o2i.size(); i++)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::max_pooling_layer::back_propagation(float*, float*, const float*)’:
../src/image/ml/cnn.hpp:415:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < o2i.size(); i++)
^
../src/image/ml/cnn.hpp:427:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < i2o.size(); i++)
^
../src/image/ml/cnn.hpp: In constructor ‘image::ml::connection_table::connection_table(int, int)’:
../src/image/ml/cnn.hpp:475:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int y = 0;y < c.height();++y)
^
../src/image/ml/cnn.hpp: In constructor ‘image::ml::convolutional_layer::convolutional_layer(image::ml::activation_type, int, const image::ml::connection_table&)’:
../src/image/ml/cnn.hpp:498:9: warning: ‘image::ml::convolutional_layer::kernel_size’ will be initialized after [-Wreorder]
int kernel_size;
^
../src/image/ml/cnn.hpp:495:22: warning: ‘image::ml::connection_table image::ml::convolutional_layer::connection’ [-Wreorder]
connection_table connection;
^
../src/image/ml/cnn.hpp:500:5: warning: when initialized here [-Wreorder]
convolutional_layer(activation_type af,int kernel_size,const connection_table& connection = connection_table())
^
In file included from ../src/image/image.hpp:83:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::to_image(image::color_image&, std::vector<float, std::allocator >, int, int)’:
../src/image/ml/cnn.hpp:829:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < layers.size();++i)
^
../src/image/ml/cnn.hpp:835:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(I2.width() > max_width)
^
../src/image/ml/cnn.hpp:842:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < I2.size();++j)
^
../src/image/ml/cnn.hpp:864:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:876:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < Iv.size();++j)
^
../src/image/ml/cnn.hpp:894:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:901:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(i < layers.size())
^
../src/image/ml/cnn.hpp:910:87: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
image::draw(Is[i],I,image::geometry<2>(1,cur_height + (Is[i].height() < layer_height ? (layer_height- Is[i].height())/2: 0)));

../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::save_to_file(const char*)’:
../src/image/ml/cnn.hpp:1008:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:1013:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(i < layers.size())
^
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:1078:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0;k < layers.size();++k)
^
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::initialize_training()’:
../src/image/ml/cnn.hpp:1104:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < layers.size();++j)
^
../src/image/ml/cnn.hpp: In lambda function:
../src/image/ml/cnn.hpp:1142:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0;k < dweight.size();++k)
^
In file included from ../src/image/image.hpp:86:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/vis/color_map.hpp: In member function ‘const image::vector<3>& image::color_map::operator[](unsigned int) const’:
../src/image/vis/color_map.hpp:58:89: warning: left operand of comma operator has no effect [-Wunused-value]
const image::vector<3,float>& operator[](unsigned int index) const{return color[255,index];}
^
In file included from ../src/mainwindow.cpp:13:0:
../src/reconstruction/reconstruction_window.h: At global scope:
../src/reconstruction/reconstruction_window.h:41:39: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<std::future > motion_correction_thread;
^
In file included from ../src/tracking/tracking_window.h:11:0,
from ../src/mainwindow.cpp:16:
../src/SliceModel.h:121:39: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<std::future > thread;
^
In file included from ../src/tracking/tracking_window.h:12:0,
from ../src/mainwindow.cpp:16:
../src/tracking/slice_view_scene.h: In constructor ‘slice_view_scene::slice_view_scene(tracking_window&)’:
../src/tracking/slice_view_scene.h:35:10: warning: ‘slice_view_scene::mid_down’ will be initialized after [-Wreorder]
bool mid_down;
^
../src/tracking/slice_view_scene.h:34:10: warning: ‘bool slice_view_scene::mouse_down’ [-Wreorder]
bool mouse_down;
^
../src/tracking/slice_view_scene.h:13:5: warning: when initialized here [-Wreorder]
slice_view_scene(tracking_window& cur_tracking_window_):
^
../src/tracking/slice_view_scene.h:34:10: warning: ‘slice_view_scene::mouse_down’ will be initialized after [-Wreorder]
bool mouse_down;
^
../src/tracking/slice_view_scene.h:25:22: warning: ‘tracking_window& slice_view_scene::cur_tracking_window’ [-Wreorder]
tracking_window& cur_tracking_window;
^
../src/tracking/slice_view_scene.h:13:5: warning: when initialized here [-Wreorder]
slice_view_scene(tracking_window& cur_tracking_window_):
^
../src/tracking/slice_view_scene.h:25:22: warning: ‘slice_view_scene::cur_tracking_window’ will be initialized after [-Wreorder]
tracking_window& cur_tracking_window;
^
../src/tracking/slice_view_scene.h:23:17: warning: ‘QStatusBar* slice_view_scene::statusbar’ [-Wreorder]
QStatusBar* statusbar;
^
../src/tracking/slice_view_scene.h:13:5: warning: when initialized here [-Wreorder]
slice_view_scene(tracking_window& cur_tracking_window_):
^
In file included from ../src/mainwindow.cpp:16:0:
../src/tracking/tracking_window.h: At global scope:
../src/tracking/tracking_window.h:66:27: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr timer,timer2;
^
../src/tracking/tracking_window.h:66:33: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr timer,timer2;
^
In file included from ../src/dicom/dicom_parser.h:3:0,
from ../src/mainwindow.cpp:18:
../src/dicom/dwi_header.hpp: In constructor ‘DwiHeader::DwiHeader()’:
../src/dicom/dwi_header.hpp:20:11: warning: ‘DwiHeader::bvalue’ will be initialized after [-Wreorder]
float bvalue;
^
../src/dicom/dwi_header.hpp:14:8: warning: ‘float DwiHeader::te’ [-Wreorder]
float te;
^
../src/dicom/dwi_header.hpp:23:5: warning: when initialized here [-Wreorder]
DwiHeader(void): bvalue(0.0), te(0.0) {}
^
In file included from ../src/mainwindow.cpp:30:0:
../src/connectometry/group_connectometry.hpp: At global scope:
../src/connectometry/group_connectometry.hpp:52:31: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<stat_model> model;
^
../src/connectometry/group_connectometry.hpp:54:27: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr timer;
^
../src/mainwindow.cpp:107:42: warning: unused parameter ‘col’ [-Wunused-parameter]
void MainWindow::open_fib_at(int row,int col)
^
../src/mainwindow.cpp:113:42: warning: unused parameter ‘col’ [-Wunused-parameter]
void MainWindow::open_src_at(int row,int col)
^
../src/mainwindow.cpp: In member function ‘void MainWindow::on_RenameDICOMDir_clicked()’:
../src/mainwindow.cpp:518:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int j = 0;j < files.size() && check_prog(index,dirs.size());++j)
^
../src/mainwindow.cpp: In member function ‘void MainWindow::on_batch_src_clicked()’:
../src/mainwindow.cpp:620:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int index = 0;index < new_list.size();++index)
^
../src/mainwindow.cpp:637:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < nifti_file_list.size();++index)
^
../src/mainwindow.cpp:652:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < dicom_file_list.size();++index)
^
../src/mainwindow.cpp:689:50: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int index = 0;index < dicom_file_list.size();++index)
^
In file included from ../src/image/numerical/transformation.hpp:3:0,
from ../src/image/image.hpp:34,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/numerical/matrix.hpp: In instantiation of ‘void image::mat::eigen_decomposition_sym(input_iterator, output_iterator1, output_iterator2, const dym_type&) [with input_iterator = __gnu_cxx::__normal_iterator<double*, std::vector >; output_iterator1 = __gnu_cxx::normal_iterator<double*, std::vector >; output_iterator2 = gnu_cxx::normal_iterator<double*, std::vector >; dym_type = image::dyndim]’:
../src/image/ml/em.hpp:33:108: required from here
../src/image/numerical/matrix.hpp:1796:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0;k < i;++k,Vrowk += dim)
^
../src/image/numerical/matrix.hpp:1805:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0;k < i;++k,Vrowk += dim)
^
../src/image/numerical/matrix.hpp:1827:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int l = 0,iter = 0;l < dim && iter < 30;++iter)
^
In file included from ../src/image/ml/cnn.hpp:26:0,
from ../src/image/image.hpp:83,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/utility/multi_thread.hpp: In instantiation of ‘image::par_for(T, Func, int)::<lambda()> [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’:
../src/image/utility/multi_thread.hpp:11:91: required from ‘struct image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]::<lambda()>’
../src/image/utility/multi_thread.hpp:15:10: required from ‘void image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’
../src/image/ml/cnn.hpp:1152:10: required from here
../src/image/utility/multi_thread.hpp:13:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = id; i < size; i += thread_count)
^
../src/image/utility/multi_thread.hpp: In instantiation of ‘void image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’:
../src/image/ml/cnn.hpp:1152:10: required from here
../src/image/utility/multi_thread.hpp:17:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < size; i += thread_count)
^
In file included from ../src/image/image.hpp:69:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/reg/reg.hpp: In instantiation of ‘image::reg::normalization<value_type>::normalization() [with value_type = double]’:
../src/libs/tracking/fib_data.hpp:145:33: required from here
../src/image/reg/reg.hpp:23:9: warning: ‘image::reg::normalization::prog’ will be initialized after [-Wreorder]
int prog;
^
../src/image/reg/reg.hpp:19:10: warning: ‘bool image::reg::normalization::has_T’ [-Wreorder]
bool has_T;
^
../src/image/reg/reg.hpp:28:5: warning: when initialized here [-Wreorder]
normalization(void):prog(0),has_T(false){}
^
In file included from ../src/image/image.hpp:52:0,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/io/2dseq.hpp: In instantiation of ‘bool image::io::bruker_2dseq::load_from_file(const char_type*) [with char_type = char]’:
../src/mainwindow.cpp:365:72: required from here
../src/image/io/2dseq.hpp:248:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int z = 0;z < dim[2];++z)
^
../src/image/io/2dseq.hpp:251:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(slope_index >= slopes.size())
^
In file included from ../src/image/morphology/morphology.hpp:7:0,
from ../src/image/image.hpp:31,
from ../src/libs/vbc/vbc_database.h:5,
from ../src/mainwindow.h:6,
from ../src/mainwindow.cpp:1:
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(type&) [with type = double]’:
../src/image/numerical/basic_op.hpp:853:34: required from ‘void image::change_endian(datatype*, size_type) [with datatype = double; size_type = long unsigned int]’
../src/image/io/dicom.hpp:162:85: required from here
../src/image/numerical/basic_op.hpp:814:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (char i = 0; i < sizeof(type); ++i,--pdata)
^
../src/image/numerical/basic_op.hpp:815:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = pdata;
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::get_orientation(int, iterator_type, dim_order_type, flip_type) [with iterator_type = float
; dim_order_type = char*; flip_type = char*]’:
../src/image/io/io.hpp:130:71: required from ‘bool image::io::volume::load_from_files(const string_list_type&, unsigned int) [with string_list_type = std::vector<std::basic_string >]’
../src/mainwindow.cpp:691:65: required from here
../src/image/numerical/basic_op.hpp:297:47: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if(std::abs(vec[j]) > std::abs(vec[dim_order[index]]))
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::reorientation(iterator_type, iterator_type2, dim_order_type, flip_type) [with iterator_type = float*; iterator_type2 = float*; dim_order_type = char*; flip_type = char*]’:
../src/image/io/io.hpp:141:82: required from ‘bool image::io::volume::load_from_files(const string_list_type&, unsigned int) [with string_list_type = std::vector<std::basic_string >]’
../src/mainwindow.cpp:691:65: required from here
../src/image/numerical/basic_op.hpp:374:31: warning: array subscript has type ‘char’ [-Wchar-subscripts]
spatial_resolution[dim_order[index]] = sr[index];
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(datatype*, size_type) [with datatype = short int; size_type = int]’:
../src/image/io/nifti.hpp:320:40: required from ‘void image::io::nifti_base<input_interface, output_interface>::convert_to_small_endian() [with input_interface = gz_istream; output_interface = gz_ostream]’
../src/image/io/nifti.hpp:412:37: required from ‘bool image::io::nifti_base<input_interface, output_interface>::load_from_file(const char_type*) [with char_type = char; input_interface = gz_istream; output_interface = gz_ostream]’
../src/mainwindow.cpp:354:65: required from here
../src/image/numerical/basic_op.hpp:852:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0; index < count; ++index)
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(datatype*, size_type) [with datatype = float; size_type = int]’:
../src/image/io/nifti.hpp:340:43: required from ‘void image::io::nifti_base<input_interface, output_interface>::convert_to_small_endian() [with input_interface = gz_istream; output_interface = gz_ostream]’
../src/image/io/nifti.hpp:412:37: required from ‘bool image::io::nifti_base<input_interface, output_interface>::load_from_file(const char_type*) [with char_type = char; input_interface = gz_istream; output_interface = gz_ostream]’
../src/mainwindow.cpp:354:65: required from here
../src/image/numerical/basic_op.hpp:852:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::reorder(const image_type1&, image_type2&, int*, int*, int) [with image_type1 = image::basic_image<float, 3u>; image_type2 = image::basic_image<float, 3u>]’:
../src/image/numerical/basic_op.hpp:538:40: required from ‘void image::swap_xy(ImageType&) [with ImageType = image::basic_image<float, 3u>]’
../src/image/io/nifti.hpp:768:31: required from ‘bool image::io::nifti_base<input_interface, output_interface>::toLPS(image_type&, bool) [with image_type = image::basic_image<float, 3u>; input_interface = gz_istream; output_interface = gz_ostream]’
../src/mainwindow.cpp:359:23: required from here
../src/image/numerical/basic_op.hpp:347:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int z = 0; z < volume.geometry()[2]; ++z)
^
g++ -c -pipe -fpermissive -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -std=gnu++0x -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I../src -I. -I../src/libs -I../src/libs/dsi -I../src/libs/tracking -I../src/libs/mapping -I../../../../include/qt5 -I../../../../include/qt5/QtOpenGL -I../../../../include/qt5/QtPrintSupport -I../../../../include/qt5/QtWidgets -I../../../../include/qt5/QtGui -I../../../../include/qt5/QtCore -I. -I. -I../../../../lib64/qt5/mkspecs/linux-g++ -o dicom_parser.o ../src/dicom/dicom_parser.cpp
In file included from ../src/image/morphology/morphology.hpp:7:0,
from ../src/image/image.hpp:31,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/numerical/basic_op.hpp: In function ‘void image::change_endian(type&)’:
../src/image/numerical/basic_op.hpp:815:15: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = *pdata;
^
In file included from ../src/image/image.hpp:34:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/numerical/transformation.hpp: In function ‘void image::create_affine_transformation_matrix(input_rotation_iter, input_shift_iter, output_iter, image::vdim<3u>)’:
../src/image/numerical/transformation.hpp:439:68: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename std::iterator_traits<output_iter>::value_type value_type;
^
In file included from ../src/image/image.hpp:47:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/io/io.hpp: In member function ‘void image::io::volume::change_orientation(bool, bool, bool)’:
../src/image/io/io.hpp:45:36: warning: array subscript has type ‘char’ [-Wchar-subscripts]
if(xyz[dim_order[index]])
^
../src/image/io/io.hpp: In member function ‘bool image::io::volume::load_from_files(const string_list_type&, unsigned int)’:
../src/image/io/io.hpp:107:46: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr dicom_header(new dicom);
^
../src/image/io/io.hpp:118:46: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr nifti_header(new nifti);
^
In file included from ../src/image/image.hpp:51:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/io/mat.hpp: In constructor ‘image::io::mat_matrix::mat_matrix(const string&)’:
../src/image/io/mat.hpp:92:18: warning: ‘image::io::mat_matrix::namelen’ will be initialized after [-Wreorder]
unsigned int namelen;
^
../src/image/io/mat.hpp:91:17: warning: ‘std::string image::io::mat_matrix::name’ [-Wreorder]
std::string name;
^
../src/image/io/mat.hpp:115:5: warning: when initialized here [-Wreorder]
mat_matrix(const std::string& name
):type(0),rows(0),cols(0),namelen((unsigned int)name
.size()+1),name(name
),data_ptr(0) {}
^
In file included from ../src/image/image.hpp:51:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/io/mat.hpp: In member function ‘bool image::io::mat_read_base<input_interface>::load_from_file(const char_type*, unsigned int, std::string)’:
../src/image/io/mat.hpp:387:45: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
../src/image/io/mat.hpp: In member function ‘bool image::io::mat_read_base<input_interface>::load_from_file(const char_type*)’:
../src/image/io/mat.hpp:407:45: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
../src/image/io/mat.hpp: In member function ‘void image::io::mat_read_base<input_interface>::add(const char*, const Type*, unsigned int, unsigned int)’:
../src/image/io/mat.hpp:419:41: warning: ‘auto_ptr’ is deprecated (declared at /opt/rh/devtoolset-3/root/usr/include/c++/4.9.2/backward/auto_ptr.h:87) [-Wdeprecated-declarations]
std::auto_ptr<mat_matrix> matrix(new mat_matrix);
^
In file included from ../src/image/image.hpp:65:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/reg/linear.hpp: In function ‘void image::reg::get_bound(const image_type1&, const image_type2&, const transform_type&, transform_type&, transform_type&, image::reg::reg_type)’:
../src/image/reg/linear.hpp:321:49: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename transform_type::value_type value_type;
^
In file included from ../src/image/reg/lddmm.hpp:5:0,
from ../src/image/image.hpp:66,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/numerical/dif.hpp: In function ‘void image::jacobian_determinant_dis(const image::basic_image<PixelType, 3u>&, DetType&)’:
../src/image/numerical/dif.hpp:187:42: warning: typedef ‘value_type’ locally defined but not used [-Wunused-local-typedefs]
typedef typename DetType::value_type value_type;
^
In file included from ../src/image/image.hpp:83:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/ml/cnn.hpp: In member function ‘void image::ml::basic_layer::initialize_weight(image::uniform_dist&)’:
../src/image/ml/cnn.hpp:105:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < weight.size(); ++i)
^
../src/image/ml/cnn.hpp: At global scope:
../src/image/ml/cnn.hpp:136:46: warning: unused parameter ‘dE_da’ [-Wunused-parameter]
virtual void calculate_dwdb(const float* dE_da,
^
../src/image/ml/cnn.hpp:137:48: warning: unused parameter ‘prev_out’ [-Wunused-parameter]
const float* prev_out,
^
../src/image/ml/cnn.hpp:138:55: warning: unused parameter ‘dweight’ [-Wunused-parameter]
std::vector& dweight,
^
../src/image/ml/cnn.hpp:139:55: warning: unused parameter ‘dbias’ [-Wunused-parameter]
std::vector& dbias){}
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:277:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < o2w_1i.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::calculate_dwdb(const float*, const float*, std::vector<float, std::allocator >&, std::vector<float, std::allocator >&)’:
../src/image/ml/cnn.hpp:287:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < w2o_1.size(); i++)
^
../src/image/ml/cnn.hpp:292:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < w2o_1i.size();++j)
^
../src/image/ml/cnn.hpp:297:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < b2o.size(); i++)
^
../src/image/ml/cnn.hpp:301:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < outs.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::partial_connected_layer::back_propagation(float*, float*, const float*)’:
../src/image/ml/cnn.hpp:315:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < i2w_1i.size();++j)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::max_pooling_layer::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:398:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < o2i.size(); i++)
^
../src/image/ml/cnn.hpp: In member function ‘virtual void image::ml::max_pooling_layer::back_propagation(float*, float*, const float*)’:
../src/image/ml/cnn.hpp:415:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < o2i.size(); i++)
^
../src/image/ml/cnn.hpp:427:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < i2o.size(); i++)
^
../src/image/ml/cnn.hpp: In constructor ‘image::ml::connection_table::connection_table(int, int)’:
../src/image/ml/cnn.hpp:475:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int y = 0;y < c.height();++y)
^
../src/image/ml/cnn.hpp: In constructor ‘image::ml::convolutional_layer::convolutional_layer(image::ml::activation_type, int, const image::ml::connection_table&)’:
../src/image/ml/cnn.hpp:498:9: warning: ‘image::ml::convolutional_layer::kernel_size’ will be initialized after [-Wreorder]
int kernel_size;
^
../src/image/ml/cnn.hpp:495:22: warning: ‘image::ml::connection_table image::ml::convolutional_layer::connection’ [-Wreorder]
connection_table connection;
^
../src/image/ml/cnn.hpp:500:5: warning: when initialized here [-Wreorder]
convolutional_layer(activation_type af,int kernel_size,const connection_table& connection = connection_table())
^
In file included from ../src/image/image.hpp:83:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::to_image(image::color_image&, std::vector<float, std::allocator >, int, int)’:
../src/image/ml/cnn.hpp:829:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < layers.size();++i)
^
../src/image/ml/cnn.hpp:835:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(I2.width() > max_width)
^
../src/image/ml/cnn.hpp:842:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < I2.size();++j)
^
../src/image/ml/cnn.hpp:864:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:876:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < Iv.size();++j)
^
../src/image/ml/cnn.hpp:894:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:901:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(i < layers.size())
^
../src/image/ml/cnn.hpp:910:87: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
image::draw(Is[i],I,image::geometry<2>(1,cur_height + (Is[i].height() < layer_height ? (layer_height- Is[i].height())/2: 0)));

../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::save_to_file(const char*)’:
../src/image/ml/cnn.hpp:1008:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < geo.size();++i)
^
../src/image/ml/cnn.hpp:1013:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(i < layers.size())
^
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::forward_propagation(const float*, float*)’:
../src/image/ml/cnn.hpp:1078:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0;k < layers.size();++k)
^
../src/image/ml/cnn.hpp: In member function ‘void image::ml::network::initialize_training()’:
../src/image/ml/cnn.hpp:1104:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j = 0;j < layers.size();++j)
^
../src/image/ml/cnn.hpp: In lambda function:
../src/image/ml/cnn.hpp:1142:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k = 0;k < dweight.size();++k)
^
In file included from ../src/image/image.hpp:86:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/vis/color_map.hpp: In member function ‘const image::vector<3>& image::color_map::operator[](unsigned int) const’:
../src/image/vis/color_map.hpp:58:89: warning: left operand of comma operator has no effect [-Wunused-value]
const image::vector<3,float>& operator[](unsigned int index) const{return color[255,index];}
^
In file included from ../src/dicom/dicom_parser.h:3:0,
from ../src/dicom/dicom_parser.cpp:5:
../src/dicom/dwi_header.hpp: In constructor ‘DwiHeader::DwiHeader()’:
../src/dicom/dwi_header.hpp:20:11: warning: ‘DwiHeader::bvalue’ will be initialized after [-Wreorder]
float bvalue;
^
../src/dicom/dwi_header.hpp:14:8: warning: ‘float DwiHeader::te’ [-Wreorder]
float te;
^
../src/dicom/dwi_header.hpp:23:5: warning: when initialized here [-Wreorder]
DwiHeader(void): bvalue(0.0), te(0.0) {}
^
../src/dicom/dicom_parser.cpp: In function ‘bool load_dicom_multi_frame(const char*, std::vector<std::shared_ptr >&)’:
../src/dicom/dicom_parser.cpp:78:22: error: ‘class image::io::dicom’ has no member named ‘get_values’
dicom_header.get_values(0x2001,0x1003,b);
^
../src/dicom/dicom_parser.cpp:79:22: error: ‘class image::io::dicom’ has no member named ‘get_values’
dicom_header.get_values(0x2005,0x10B0,bx);
^
../src/dicom/dicom_parser.cpp:80:22: error: ‘class image::io::dicom’ has no member named ‘get_values’
dicom_header.get_values(0x2005,0x10B1,by);
^
../src/dicom/dicom_parser.cpp:81:22: error: ‘class image::io::dicom’ has no member named ‘get_values’
dicom_header.get_values(0x2005,0x10B2,bz);
^
../src/dicom/dicom_parser.cpp: In function ‘bool load_multiple_slice_dicom(QStringList, std::vector<std::shared_ptr >&)’:
../src/dicom/dicom_parser.cpp:349:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (;slice_num < file_list.size();++slice_num)
^
../src/dicom/dicom_parser.cpp:363:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (;b_num < file_list.size();++b_num)
^
../src/dicom/dicom_parser.cpp:379:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (;b_num < file_list.size();++b_num)
^
../src/dicom/dicom_parser.cpp:392:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (;slice_num < file_list.size();++slice_num)
^
../src/dicom/dicom_parser.cpp: In function ‘bool load_4d_fdf(QStringList, std::vector<std::shared_ptr >&)’:
../src/dicom/dicom_parser.cpp:515:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(dwi_id < 0 || dwi_id >= dwi_files.size() || slice_id < 0 || slice_id >= dwi_files.front()->image.depth())
^
../src/dicom/dicom_parser.cpp:515:85: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(dwi_id < 0 || dwi_id >= dwi_files.size() || slice_id < 0 || slice_id >= dwi_files.front()->image.depth())
^
../src/dicom/dicom_parser.cpp: In function ‘bool load_all_files(QStringList, std::vector<std::shared_ptr >&)’:
../src/dicom/dicom_parser.cpp:556:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int index = 0;index < file_list.size();++index)
^
../src/dicom/dicom_parser.cpp:571:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < dicom_file_list.size();++index)
^
../src/dicom/dicom_parser.cpp:580:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int index = 0;index < file_list.size();++index)
^
../src/dicom/dicom_parser.cpp:589:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int i = 0;i < file_list.size();++i)
^
../src/dicom/dicom_parser.cpp:604:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int index = 0;index < file_list.size();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::update_b_table()’:
../src/dicom/dicom_parser.cpp:705:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionOpen_b_table_triggered()’:
../src/dicom/dicom_parser.cpp:744:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(b_table.size()/4 != ui->tableWidget->rowCount() && (b_table.size()/4)%ui->tableWidget->rowCount() == 0)
^
../src/dicom/dicom_parser.cpp:747:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int i = 0;i < ui->tableWidget->rowCount();++i)
^
../src/dicom/dicom_parser.cpp:756:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0,b_index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionSave_b_table_triggered()’:
../src/dicom/dicom_parser.cpp:813:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionFlip_bx_triggered()’:
../src/dicom/dicom_parser.cpp:823:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionFlip_by_triggered()’:
../src/dicom/dicom_parser.cpp:829:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionFlip_bz_triggered()’:
../src/dicom/dicom_parser.cpp:835:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionSwap_bx_by_triggered()’:
../src/dicom/dicom_parser.cpp:841:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionSwap_bx_bz_triggered()’:
../src/dicom/dicom_parser.cpp:851:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
../src/dicom/dicom_parser.cpp: In member function ‘void dicom_parser::on_actionSwap_by_bz_triggered()’:
../src/dicom/dicom_parser.cpp:861:39: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0;index < ui->tableWidget->rowCount();++index)
^
In file included from ../src/image/numerical/transformation.hpp:3:0,
from ../src/image/image.hpp:34,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/numerical/matrix.hpp: In instantiation of ‘void image::mat::eigen_decomposition_sym(input_iterator, output_iterator1, output_iterator2, const dym_type&) [with input_iterator = __gnu_cxx::__normal_iterator<double*, std::vector >; output_iterator1 = __gnu_cxx::__normal_iterator<double*, std::vector >; output_iterator2 = __gnu_cxx::__normal_iterator<double*, std::vector >; dym_type = image::dyndim]’:
../src/image/ml/em.hpp:33:108: required from here
../src/image/numerical/matrix.hpp:1796:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0;k < i;++k,Vrowk += dim)
^
../src/image/numerical/matrix.hpp:1805:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0;k < i;++k,Vrowk += dim)
^
../src/image/numerical/matrix.hpp:1827:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int l = 0,iter = 0;l < dim && iter < 30;++iter)
^
In file included from ../src/image/ml/cnn.hpp:26:0,
from ../src/image/image.hpp:83,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/utility/multi_thread.hpp: In instantiation of ‘image::par_for(T, Func, int)::<lambda()> [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’:
../src/image/utility/multi_thread.hpp:11:91: required from ‘struct image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]::<lambda()>’
../src/image/utility/multi_thread.hpp:15:10: required from ‘void image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’
../src/image/ml/cnn.hpp:1152:10: required from here
../src/image/utility/multi_thread.hpp:13:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = id; i < size; i += thread_count)
^
../src/image/utility/multi_thread.hpp: In instantiation of ‘void image::par_for(T, Func, int) [with T = long unsigned int; Func = image::ml::network::update_weights(float)::<lambda(int)>]’:
../src/image/ml/cnn.hpp:1152:10: required from here
../src/image/utility/multi_thread.hpp:17:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < size; i += thread_count)
^
In file included from ../src/image/image.hpp:69:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/reg/reg.hpp: In instantiation of ‘image::reg::normalization<value_type>::normalization() [with value_type = double]’:
../src/libs/tracking/fib_data.hpp:145:33: required from here
../src/image/reg/reg.hpp:23:9: warning: ‘image::reg::normalization::prog’ will be initialized after [-Wreorder]
int prog;
^
../src/image/reg/reg.hpp:19:10: warning: ‘bool image::reg::normalization::has_T’ [-Wreorder]
bool has_T;
^
../src/image/reg/reg.hpp:28:5: warning: when initialized here [-Wreorder]
normalization(void):prog(0),has_T(false){}
^
In file included from ../src/image/image.hpp:52:0,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/io/2dseq.hpp: In instantiation of ‘bool image::io::bruker_2dseq::load_from_file(const char_type*) [with char_type = char]’:
../src/dicom/dicom_parser.cpp:261:47: required from here
../src/image/io/2dseq.hpp:248:38: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(unsigned int z = 0;z < dim[2];++z)
^
../src/image/io/2dseq.hpp:251:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(slope_index >= slopes.size())
^
In file included from ../src/image/morphology/morphology.hpp:7:0,
from ../src/image/image.hpp:31,
from ../src/dicom/dwi_header.hpp:5,
from ../src/dicom/dicom_parser.h:3,
from ../src/dicom/dicom_parser.cpp:5:
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(type&) [with type = double]’:
../src/image/numerical/basic_op.hpp:853:34: required from ‘void image::change_endian(datatype*, size_type) [with datatype = double; size_type = long unsigned int]’
../src/image/io/dicom.hpp:162:85: required from here
../src/image/numerical/basic_op.hpp:814:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (char i = 0; i < sizeof(type); ++i,--pdata)
^
../src/image/numerical/basic_op.hpp:815:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = pdata;
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(datatype
, size_type) [with datatype = short int; size_type = int]’:
../src/image/io/nifti.hpp:320:40: required from ‘void image::io::nifti_base<input_interface, output_interface>::convert_to_small_endian() [with input_interface = gz_istream; output_interface = gz_ostream]’
../src/image/io/nifti.hpp:412:37: required from ‘bool image::io::nifti_base<input_interface, output_interface>::load_from_file(const char_type*) [with char_type = char; input_interface = gz_istream; output_interface = gz_ostream]’
../src/dicom/dicom_parser.cpp:146:48: required from here
../src/image/numerical/basic_op.hpp:852:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int index = 0; index < count; ++index)
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(datatype*, size_type) [with datatype = float; size_type = int]’:
../src/image/io/nifti.hpp:340:43: required from ‘void image::io::nifti_base<input_interface, output_interface>::convert_to_small_endian() [with input_interface = gz_istream; output_interface = gz_ostream]’
../src/image/io/nifti.hpp:412:37: required from ‘bool image::io::nifti_base<input_interface, output_interface>::load_from_file(const char_type*) [with char_type = char; input_interface = gz_istream; output_interface = gz_ostream]’
../src/dicom/dicom_parser.cpp:146:48: required from here
../src/image/numerical/basic_op.hpp:852:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::reorder(const image_type1&, image_type2&, int*, int*, int) [with image_type1 = image::basic_image<float, 4u>; image_type2 = image::basic_image<float, 4u>]’:
../src/image/numerical/basic_op.hpp:538:40: required from ‘void image::swap_xy(ImageType&) [with ImageType = image::basic_image<float, 4u>]’
../src/image/io/nifti.hpp:768:31: required from ‘bool image::io::nifti_base<input_interface, output_interface>::toLPS(image_type&, bool) [with image_type = image::basic_image<float, 4u>; input_interface = gz_istream; output_interface = gz_ostream]’
../src/dicom/dicom_parser.cpp:191:39: required from here
../src/image/numerical/basic_op.hpp:347:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (unsigned int z = 0; z < volume.geometry()[2]; ++z)
^
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::reorder(const image_type1&, image_type2&, int*, int*, int) [with image_type1 = image::basic_image<unsigned char, 3u>; image_type2 = image::basic_image<unsigned char, 3u>]’:
../src/image/numerical/basic_op.hpp:538:40: required from ‘void image::swap_xy(ImageType&) [with ImageType = image::basic_image<unsigned char, 3u>]’
../src/image/io/nifti.hpp:768:31: required from ‘bool image::io::nifti_base<input_interface, output_interface>::toLPS(image_type&, bool) [with image_type = image::basic_image<unsigned char, 3u>; input_interface = gz_istream; output_interface = gz_ostream]’
../src/dicom/dicom_parser.cpp:200:35: required from here
../src/image/numerical/basic_op.hpp:347:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::reorder(const image_type1&, image_type2&, int*, int*, int) [with image_type1 = image::basic_image<float, 3u>; image_type2 = image::basic_image<float, 3u>]’:
../src/image/numerical/basic_op.hpp:538:40: required from ‘void image::swap_xy(ImageType&) [with ImageType = image::basic_image<float, 3u>]’
../src/image/io/nifti.hpp:768:31: required from ‘bool image::io::nifti_base<input_interface, output_interface>::toLPS(image_type&, bool) [with image_type = image::basic_image<float, 3u>; input_interface = gz_istream; output_interface = gz_ostream]’
../src/dicom/dicom_parser.cpp:210:44: required from here
../src/image/numerical/basic_op.hpp:347:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
../src/image/numerical/basic_op.hpp: In instantiation of ‘void image::change_endian(type&) [with type = unsigned char]’:
../src/image/numerical/basic_op.hpp:853:34: required from ‘void image::change_endian(datatype*, size_type) [with datatype = unsigned char; size_type = unsigned int]’
../src/image/io/nifti.hpp:610:48: required from ‘bool image::io::nifti_base<input_interface, output_interface>::save_to_buffer(pointer_type, unsigned int) const [with pointer_type = __gnu_cxx::__normal_iterator<unsigned char*, std::vector<unsigned char, std::allocator > >; input_interface = gz_istream; output_interface = gz_ostream]’
../src/image/io/nifti.hpp:690:50: required from ‘bool image::io::nifti_base<input_interface, output_interface>::save_to_image(image_type&) const [with image_type = image::basic_image<unsigned char, 3u>; input_interface = gz_istream; output_interface = gz_ostream]’
../src/image/io/nifti.hpp:755:30: required from ‘bool image::io::nifti_base<input_interface, output_interface>::toLPS(image_type&, bool) [with image_type = image::basic_image<unsigned char, 3u>; input_interface = gz_istream; output_interface = gz_ostream]’
../src/dicom/dicom_parser.cpp:200:35: required from here
../src/image/numerical/basic_op.hpp:814:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (char i = 0; i < sizeof(type); ++i,--pdata)
^
../src/image/numerical/basic_op.hpp:815:17: warning: array subscript has type ‘char’ [-Wchar-subscripts]
temp[i] = *pdata;
^
make: *** [dicom_parser.o] Error 1

B-tables in Philips MR-enhanced DICOM files

Hi,
We have been trying to read MR enhanced DICOM using DSI studio and it doesn't recognize the b-table stored in the DICOM header - dialog box with "Cannot find b-table from the header. You may need to load an external b-table". I had been using the November 10 2015 build.

I tried updating to the latest Oct 12 2017 and it won't read the enhanced MR DICOM files at all - returns "Invalid file format". It also always shows a dialog box with "Failed to load template file at" but this doesn't seem to stop it from running.

I downloaded the source and built on my Mac which reads the file but no b-tables found (like the 2015 build). I looked at the code (and I am no pro at C++ - old C programmer), but I did see that the sequences in the DICOM header (Type SQ object) are read in as a whole and the items are not processed. The Per-Frame Functional Groups sequence contains all the info about individual images and this is where the b-tables are stored. I added some code to cause this sequence (and any others) to be processed. For Philips enhanced-MR files (at least) the b-table is now found.

Reading sequences this way could cause some unexpected problems in some DICOM files. For instance, sometimes there is a sequence containing information about the scan used to prescribe this scan. This sequence can contain DICOM fields for imaging parameters of this prescribing sequence. But since my change just reads the sequence items inline there's no way to distinguish these from the current scan's parameters.

I have attached the modified dicom.hpp from the image/io directory for you to look at.
dicom.hpp.zip

Best regards,
Joe

Implement /out, /work, /atlases as mounting points for docker container

Right now the dsi studio docker image offers a /data folder which one can use do mount the local directory where the data is stored inside the container. However, if would be nice, if the container would also offer an /out directory (to mount a local output directory) a /work directory (to mount a local directory that contains script files) and maybe also an /atlases directory to mount a local directory that contains custom atlases. Of course the names are arbitrary here, they could also be named /output, /workdir, /user_atlases or something like that. Perhaps it would make sense to stick to fmripreps convention of how to name these folders.

Error using singularity: 'FATAL: no executable dsi_studio found'

Hello,

I posted this on website discussion but wasn't sure whether that forum is still in use. Sorry for the repost if so.

I am trying execute command line dsi_studio via singularity. I have pulled the singularity file but when running the lines below I get the following error:

singularity pull docker://dsistudio/dsistudio
singularity exec dsistudio_latest.sif dsi_studio --action=rec --source=my.src.gz --thread_count=4 --method=7 --param0=1.7  #command line

WARNING: passwd file doesn't exist in container, not updating
WARNING: group file doesn't exist in container, not updating
FATAL: no executable dsi_studio found

Not sure which threshold is used and if its value is randomly chosen or not

I am using dsi_studio --action=trk without any input for fa_treshold. According to the docs this means that

If fa_threshold is not assigned, then the default Otsu's threshold will be used

which (again according to the docs) should equal 0.6 by default. However, when I load my .fib file into DSI Studio and add the resulting .tt to it, I get the following information about the .tt file in the lower right corner of the UI:

A deterministic fiber tracking algorithm (Yeh et al., PLoS ONE 8(11): e80713, 2013) was used. A seeding region was placed at whole brain. The anisotropy threshold was randomly selected. The angular threshold was 55 degrees. The step size was 1 mm. Tracks with length shorter than 10 or longer than 400 mm were discarded. A total of 100000 tracts were calculated. parameter_id=c9A99193FE8D5123Fb803Fcb2041bC843A08601ca01cbaCDCC4C3Ec

Is this just misleading information derived from the .tt file or did DSI Studio really chose the threshold randomly during fiber tracking? If I don't specify fa_threshold, then otsu_treshold with a value of 0.6 should be chosen? Why does "The anisotropy threshold was randomly selected" sentence then appear in the UI?

Diameter in nii file

I do "Fiber Tracking" and set diameter for a better visual experience. I want to know is there any way to change diameter of tracking in nii file I saved?

Problem about registering

Hello frankyeh, I use DSI-Studio for studying but I met a problem. There is my step to proess:

  1. Use “Diffusion MRI Tractography” and I “Reconstruction” with “DTI” method.
  2. Start “Fiber Tracking” and save track as a “nii” file.
  3. Register the “Track.nii” image and “structure.nii” as “Result.nii”
  4. Use “MRIcroN” to check the result. I use “Add overlay” to add the “Result.nii” to “Structure.nii”
    Then I find a problem. If “Track.nii” in step2 is not “whole_brain.nii”, the image in step4 has a little offset in axis Z. Can you tell me what is the reason of this offset? What do I need to do if I don’t want the offset?

There is my result:
image

The left image is the result of whole_brain and structure, the middle picture is the region I have choice, the right picture is the result of "region.nii" and structure.

You can also contact me by email [email protected] , thank you

can't compile Sept 27 version

Hi Frank,

I did git clone -b master git://github.com/frankyeh/DSI-Studio.git src
and am trying to compile on Ubuntu and get these errors:

../src/tracking/tracking_window.cpp:125:9: error: ‘class Ui::tracking_window’ has no member named ‘actionConnectometry’
../src/tracking/tracking_window.cpp:276:21: error: ‘class Ui::tracking_window’ has no member named ‘actionCopyTrack’
../src/tracking/tracking_window.cpp:333:13: error: ‘class Ui::tracking_window’ has no member named ‘RAS’
../src/tracking/tracking_window.cpp:354:33: error: ‘class Ui::tracking_window’ has no member named ‘RAS’
../src/tracking/tracking_window.cpp:1144:38: error: ‘class Ui::tracking_window’ has no member named ‘RAS’

thanks
Kate

Warning: --track_count is not used. Please check command line syntax.

As described on the documentation page, I am using the --track_count argument for dsi_studio --action=trk

Whole brain fiber tracking

dsi_studio --action=src --source=./dwi.nii.gz --bval=./bval --bvec=./bvec --output=./my.src.gz
dsi_studio --action=rec --source=./my.src.gz --method=4 --param0=1.25 # 4:GQI reconstruction
dsi_studio --action=trk --source=./my.src.gz.gqi.1.25.fib.gz --track_count=10000000

However, I get the following error:

Warning: --track_count is not used. Please check command line syntax.

Instead, dsi_studio --action=trk seems to use the fiber_count argument? --track_count seems to exist only for dsi_studio --action=atk? Are those equivalent?

CentOS7 build from tip of master

Hello,

I checked out the latest source for DSI-Studio, then under DSI-Studio got the TIPL archive and renamed /TIPL to ./image. I installed the devtoolst-4 and enabled it so my bash shell environment is set to use gcc/g++ 5.3.1 compilers. (Prior to that I was getting gcc 4 compilers). I see there is a script, build_linux_red_hat.sh, at the top of the tree so I have been using this. It generates a Makefile, and then runs the build (and also does that fix I think you mentioned elsewhere in the online documentation). But ultimately, whether or not I use gcc 4 or 5 compilers, I end up with a segfault. I got a bit further along with the build using the gcc 5 compilers, but still segfaulted eventually at,
./image/ml/cnn.hpp: At global scope:
./image/ml/cnn.hpp:1119:5: internal compiler error: Segmentation fault

I could try a newer devtoolset with gcc 6 compilers, but I thought I would first post this to see if you could advise about anything I am missing to remedy this. (I am also using qt5 I believe, or at least that is where my qmake comes from). Thanks for any info/updates.

Atlas button causes 'Segmentation fault (core dumped)' on Ubuntu14

Dear Frank,

In my build from the lastest master branch on Ubuntu 14.4, the Atlas button in the tracking module crashed the DSI studio (sudden quit) with a 'Segmentation fault (core dumped)' left in the command line.

It was built with qmake 4.8.2, g++ 4.8.2.

Siqi

Help with command line args

Hi Frank
Thanks again for a fantastic package.
We are trying to set up a processing pipeline ideally from the command line alone. We are a little stuck with what are probably simple problems - maybe you can help.

  1. Can we run the initial "open source files" process (including loading a custom b-table) from the command line directly? (i.e. point the program at a folder that contains a pre-corrected nii.gz file and load a b-table for it.) - we don't think this part of the "rec" command because that is obviously the reconstruction step.
  2. While we have run motion correction in other packages, it would be useful to run your motion correction routines on our raw data for comparison - these are DSI data however. Is that possible from the command line?

Thanks for you help.
Andre'

can we compile and use the fiber tracking part as a standalone app for visulizing fibers ?

Hi,

Can we just compile the fiber selection and visualization part of your programs?
Is that complicated ? (or maybe the fiber tracking application)

( I work on DTI and I programmed mostly in Matlab.
I visualize DWIs, tensors and fibers with a short Python script that I wrote. But my application does not support interactive selection, and the visualization seems not as efficient as yours.)

Thanks in advance!
Hongying

'make' failing: sqrtf is not a member of std

Not sure if others have had issues with compiling dsi-studio on Linux. Running 'make' gave the following error:

'sqrtf is not a member of 'std''
make_dsi_studio_output.txt

I have attached the full output of 'make'. It doesn't like sqrtf() being called as std::sqrtf().

After trying several things (including different compilers), it seemed the only way to fix it was to rename std::sqrtf to sqrtf across all .cpp/.hpp files in src. The same had to be done for expf, cosf, and acosf. After doing so, running 'make' then worked fine.

Maybe others have had the same issue. Older and newer gcc versions gave the same issue.

System:
Ubuntu 18.04 LTS
gcc (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
g++ (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
Using Qt version 5.12.4

Failure to compile Linux-x64. 'devicepixelratio was not declared in this scope'

I have tried compiling on Gentoo amd64 and ran into the following error:

"../src/opengl/glwidget.cpp:2097:79: error: �devicePixelRatio�� was not declared in this scope
QImage I1 = grabFrameBuffer().scaledToWidth(1024*devicePixelRatio());
Makefile:2126: recipe for target 'glwidget.o' failed"

Full output at http://pastebin.com/2BQYC80W

I have installed all dependencies and upgraded my system to QT5 as described in the install guide. I have done everything except the Nvidia drivers step as I do not have Nvidia graphics.

A similar issue with a different package that moved to QT5 can be found here: http://forum.openscenegraph.org/viewtopic.php?t=13287 Perhaps something similar to that solution is needed?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.