From 2b9c345a2bccd2992ac372530efcbef75bcfc0d6 Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Fri, 19 Feb 2016 13:00:13 +0000 Subject: [PATCH 1/7] Adding batch conversion --- CMakeLists.txt | 25 ++++++- README.md | 116 +++++++++++++++++++++++++++------ config.yaml | 16 +++++ console/CMakeLists.txt | 42 ++++++++---- console/main_console.cpp | 0 console/main_console_batch.cpp | 80 +++++++++++++++++++++++ run_configuration.yaml | 16 +++++ 7 files changed, 263 insertions(+), 32 deletions(-) create mode 100644 config.yaml mode change 100755 => 100644 console/main_console.cpp create mode 100755 console/main_console_batch.cpp create mode 100644 run_configuration.yaml diff --git a/CMakeLists.txt b/CMakeLists.txt index ef8324d7..9feed27f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,33 @@ project(dcm2niix) +cmake_minimum_required(VERSION 2.6) + +# Option1: Choose whether to build the batch version +option(BATCH_VERSION "Build dcm2niibatch for multiple conversions as well" OFF) +message(${BATCH_VERSION}) + +# Option2: Build qt gui +# TODO + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin") cmake_minimum_required(VERSION 2.6) # # Zlib # -find_package(ZLIB) +#find_package(ZLIB) + +# Resolve system dependency on yaml-cpp, which apparently does not +# provide a CMake find_package() module. +find_package(PkgConfig) +if(PKG_CONFIG_FOUND) + pkg_check_modules(YAML_CPP yaml-cpp) + find_path(YAML_CPP_INCLUDE_DIR + NAMES yaml_cpp.h + PATHS ${YAML_CPP_INCLUDE_DIRS}) + find_library(YAML_CPP_LIBRARY + NAMES YAML_CPP + PATHS ${YAML_CPP_LIBRARY_DIRS}) +endif() # Predefined permission set to enforce proper permissions # during install even if files in the sources have different diff --git a/README.md b/README.md index 344c53bb..b29ec30b 100755 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -##### About +## About -dcm2nii is a designed to convert neuroimaging data from the NIfTI format to the DICOM format. For details and compiled versions visit the [NITRC wiki](http://www.nitrc.org/plugins/mwiki/index.php/dcm2nii:MainPage) +dcm2niix is a designed to convert neuroimaging data from the NIfTI format to the DICOM format. For details and compiled versions visit the [NITRC wiki](http://www.nitrc.org/plugins/mwiki/index.php/dcm2nii:MainPage) -##### Versions +## Versions 12-Dec-2015 - Support PAR/REC FP values when possible(see PMC3998685) @@ -29,25 +29,87 @@ dcm2nii is a designed to convert neuroimaging data from the NIfTI format to the 11-Oct-2014 - Initial public release -Building command line version: - - This requires a C compiler. With a terminal, change directory to the 'conosle' folder and run the following: +## Running + +#### Single conversion +See help: `dcm2niix -h` +e.g. `dcm2niix /path/to/dicom/folder` + +#### Batch conversion +Perform a batch conversion of multiple dicoms using the configurations specified in a yaml file. +```bash +dcm2niibatch run_configuration.yaml +``` + +The configuration file should be in yaml format as shown in example `run_configuration.yaml` + +```yaml +Options: + isGz: false + isFlipY: false + isVerbose: false + isCreateBIDS: false + isOnlySingleFile: false +Files: + - + in_dir: /path/to/first/file + out_dir: /path/to/output/directory + filename: dcemri + - + in_dir: /path/to/second/file + out_dir: /path/to/output/directory + filename: fa3 +``` + +You can add as many files as you want to convert as long as this structure stays consistent. Note that a dash must separate each file. + +## Build + +### Build command line version with cmake (Linux, Windows, OSx) + +```bash +mkdir build +cd build +cmake .. +``` +`dcm2niix` will be created in the `bin` folder + +The batch processing binary `dcm2niibatch` is optional. To build `dcm2niibatch` as well change the cmake command to `cmake -DBATCH_VERSION=ON ..` + +This requires the following libraries: +- pkg-config +- yaml-cpp +- a compiler that supports c++11 + +e.g. the dependencies can be installed on Ubuntu 14.04 by running +``` +sudo apt-get install pkg-config libyaml-cpp-dev libyaml-cpp0.5 cmake +``` + +### Building the command line version without cmake + + This requires a C compiler. With a terminal, change directory to the 'console' folder and run the following: ##### DEFAULT BUILD -- g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -o dcm2niix +``` +g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -o dcm2niix +``` ##### ZLIB BUILD If we have zlib, we can use it (-lz) and disable [miniz](https://code.google.com/p/miniz/) (-myDisableMiniZ) - - g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -o dcm2niix -lz -DmyDisableMiniZ +``` +g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -o dcm2niix -lz -DmyDisableMiniZ +``` ##### MINGW BUILD -If you use the (osbsolete) compiler MinGW on Windows you will want to include the rare libgcc libraries with your executable so others can use it. Here I also demonstrate the optional "-DmyDisableZLib" to remove zip support. - - - g++ -O3 -s -DmyDisableOpenJPEG -DmyDisableZLib -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -static-libgcc +If you use the (obsolete) compiler MinGW on Windows you will want to include the rare libgcc libraries with your executable so others can use it. Here I also demonstrate the optional "-DmyDisableZLib" to remove zip support. +``` +g++ -O3 -s -DmyDisableOpenJPEG -DmyDisableZLib -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -static-libgcc +``` ##### JPEG2000 BUILD @@ -58,17 +120,25 @@ If you use the (osbsolete) compiler MinGW on Windows you will want to include th sudo make install You should then be able to run then run: - - g++ -O3 -dead_strip -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -lopenjp2 +``` +g++ -O3 -dead_strip -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -lopenjp2 +``` But in my experience this works best if you explicitly tell the software how to find the libraries, so your compile will probably look like one of these two options: - - g++ -O3 -dead_strip -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -I/usr/local/include /usr/local/lib/libopenjp2.a +``` +g++ -O3 -dead_strip -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -I/usr/local/include /usr/local/lib/libopenjp2.a +``` - - g++ -O3 -dead_strip -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -I/usr/local/lib /usr/local/lib/libopenjp2.a +``` +g++ -O3 -dead_strip -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -o dcm2niix -I/usr/local/lib /usr/local/lib/libopenjp2.a +``` If you want to build this with JPEG2000 decompression support using Jasper: You will need to have the Jasper (http://www.ece.uvic.ca/~frodo/jasper/) and libjpeg (http://www.ijg.org) libraries installed which for Linux users may be as easy as running 'sudo apt-get install libjasper-dev' (otherwise, see http://www.ece.uvic.ca/~frodo/jasper/#doc). You can then run: - - g++ -O3 -DmyDisableOpenJPEG -DmyEnableJasper -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -s -o dcm2niix -ljasper -ljpeg +``` +g++ -O3 -DmyDisableOpenJPEG -DmyEnableJasper -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -s -o dcm2niix -ljasper -ljpeg +``` ##### VISUAL STUDIO BUILD @@ -79,15 +149,23 @@ You should be able to click on the Visual Studio icons to open and build this co Building command line version universal binary from OSX 64 bit system: This requires a C compiler. With a terminal, change directory to the 'conosle' folder and run the following: - - g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -arch i386 -o dcm2niix32 +``` +g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -arch i386 -o dcm2niix32 +``` - - g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -o dcm2niix64 +``` +g++ -O3 -DmyDisableOpenJPEG -I. main_console.cpp nii_dicom.cpp nifti1_io_core.cpp nii_ortho.cpp nii_dicom_batch.cpp jpg_0XC3.cpp ujpeg.cpp -dead_strip -o dcm2niix64 +``` - - lipo -create dcm2niix32 dcm2niix64 -o dcm2niix +``` +lipo -create dcm2niix32 dcm2niix64 -o dcm2niix +``` To validate that the resulting executable supports both architectures type - - file ./dcm2niix +``` +file ./dcm2niix +``` ##### OSX GRAPHICAL INTERFACE BUILD diff --git a/config.yaml b/config.yaml new file mode 100644 index 00000000..6ad950b6 --- /dev/null +++ b/config.yaml @@ -0,0 +1,16 @@ +Options: + isGz: false + isFlipY: false + isVerbose: false + isCreateBIDS: false + isOnlySingleFile: false + +Files: + - + in_dir: /Test1a + out_dir: /Test1b + filename: /Test1c + - + in_dir: /Test2a + out_dir: /Test2b + filename: Test2c diff --git a/console/CMakeLists.txt b/console/CMakeLists.txt index fc829846..c8c8590b 100755 --- a/console/CMakeLists.txt +++ b/console/CMakeLists.txt @@ -1,18 +1,9 @@ project(console) set(PROGRAMS dcm2niix) -add_executable(dcm2niix - main_console.cpp - nii_dicom.cpp - jpg_0XC3.cpp - ujpeg.cpp - nifti1_io_core.cpp - nii_ortho.cpp - nii_dicom_batch.cpp) - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") # using Clang - ADD_DEFINITIONS(-dead_strip) + add_definitions(-dead_strip) elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") # using GCC elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel") @@ -28,7 +19,34 @@ endif() #else(ZLIB_FOUND) # ADD_DEFINITIONS(-DmyDisableZlib) #endif(ZLIB_FOUND) -ADD_DEFINITIONS(-DmyDisableJasper) -ADD_DEFINITIONS(-DmyDisableOpenJPEG) +add_definitions(-DmyDisableJasper) +add_definitions(-DmyDisableOpenJPEG) + +add_executable(dcm2niix + main_console.cpp + nii_dicom.cpp + jpg_0XC3.cpp + ujpeg.cpp + nifti1_io_core.cpp + nii_ortho.cpp + nii_dicom_batch.cpp) + + +if (BATCH_VERSION) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") + + message("Creating batch version") + + add_executable(dcm2niibatch + main_console_batch.cpp + nii_dicom.cpp + jpg_0XC3.cpp + ujpeg.cpp + nifti1_io_core.cpp + nii_ortho.cpp + nii_dicom_batch.cpp) + + target_link_libraries(dcm2niibatch yaml-cpp) +endif() install(TARGETS ${PROGRAMS} DESTINATION bin) diff --git a/console/main_console.cpp b/console/main_console.cpp old mode 100755 new mode 100644 diff --git a/console/main_console_batch.cpp b/console/main_console_batch.cpp new file mode 100755 index 00000000..32bbc921 --- /dev/null +++ b/console/main_console_batch.cpp @@ -0,0 +1,80 @@ +// main.m dcm2niix +// by Chris Rorden on 3/22/14, released under Gnu General Public License, Version 2. +// Copyright (c) 2014 Chris Rorden. All rights reserved. + + +#include +#include +#include // clock_t, clock, CLOCKS_PER_SEC +#include +#include +#include +#include + +#include "nii_dicom_batch.h" + +#include +#include + +const char* removePath(const char* path) { // "/usr/path/filename.exe" -> "filename.exe" + const char* pDelimeter = strrchr (path, '\\'); + if (pDelimeter) + path = pDelimeter+1; + pDelimeter = strrchr (path, '/'); + if (pDelimeter) + path = pDelimeter+1; + return path; +} //removePath() + + +int rmainbatch(TDCMopts opts) +{ + printf("Chris Rorden's dcm2niiX version %s (%lu-bit)\n",kDCMvers, sizeof(size_t)*8); + + clock_t start = clock(); + nii_loadDir(&opts); + printf ("Conversion required %f seconds.\n",((float)(clock()-start))/CLOCKS_PER_SEC); + return EXIT_SUCCESS; +} + +int main(int argc, const char * argv[]) +{ + + if (argc != 2) { + std::cout << "Do not include additional inputs with a config file \n"; + throw; + } + + // Process it all via a yaml file + std::string yaml_file = argv[1]; + std::cout << "yaml_path: " << yaml_file << std::endl; + YAML::Node config = YAML::LoadFile(yaml_file); + + struct TDCMopts opts; + + opts.isCreateBIDS = config["Options"]["isCreateBIDS"].as(); + opts.isOnlySingleFile = config["Options"]["isOnlySingleFile"].as(); + opts.isCreateText = false; + opts.isVerbose = false; + opts.isGz = config["Options"]["isGz"].as(); //force use of internal compression instead of pigz + if (opts.isGz) { + // TODO this is not the same as previous + strcpy(opts.pigzname, ""); + } + + for (auto i: config["Files"]) { + + std::string indir = i["in_dir"].as(); + strcpy(opts.indir, indir.c_str()); + + std::string outdir = i["out_dir"].as(); + strcpy(opts.outdir, outdir.c_str()); + + std::string filename = i["filename"].as(); + strcpy(opts.filename, filename.c_str()); + + rmainbatch(opts); + + } + return 1; +} diff --git a/run_configuration.yaml b/run_configuration.yaml new file mode 100644 index 00000000..b8474882 --- /dev/null +++ b/run_configuration.yaml @@ -0,0 +1,16 @@ +Options: + isGz: false + isFlipY: false + isVerbose: false + isCreateBIDS: false + isOnlySingleFile: false + +Files: + - + in_dir: /netshares/mvlprojects6/Registration_Data/RIT_Data2_ben/DICOM/RIT003/pre/Dynamic + out_dir: /home/ENG/engs1170/Code/dcm2niix/testing + filename: dcemri + - + in_dir: /netshares/mvlprojects6/Registration_Data/RIT_Data2_ben/DICOM/RIT003/pre/03ALONE + out_dir: /home/ENG/engs1170/Code/dcm2niix/testing + filename: fa3 From 77e833bdfc08237f36096c9daaec1d34c18b7934 Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Fri, 26 Feb 2016 13:13:03 +0000 Subject: [PATCH 2/7] update yaml example --- config.yaml | 16 ---------------- run_configuration.yaml | 10 +++++----- 2 files changed, 5 insertions(+), 21 deletions(-) delete mode 100644 config.yaml diff --git a/config.yaml b/config.yaml deleted file mode 100644 index 6ad950b6..00000000 --- a/config.yaml +++ /dev/null @@ -1,16 +0,0 @@ -Options: - isGz: false - isFlipY: false - isVerbose: false - isCreateBIDS: false - isOnlySingleFile: false - -Files: - - - in_dir: /Test1a - out_dir: /Test1b - filename: /Test1c - - - in_dir: /Test2a - out_dir: /Test2b - filename: Test2c diff --git a/run_configuration.yaml b/run_configuration.yaml index b8474882..4b3431ca 100644 --- a/run_configuration.yaml +++ b/run_configuration.yaml @@ -7,10 +7,10 @@ Options: Files: - - in_dir: /netshares/mvlprojects6/Registration_Data/RIT_Data2_ben/DICOM/RIT003/pre/Dynamic - out_dir: /home/ENG/engs1170/Code/dcm2niix/testing + in_dir: /path/to/first/file + out_dir: /path/to/output/directory filename: dcemri - - in_dir: /netshares/mvlprojects6/Registration_Data/RIT_Data2_ben/DICOM/RIT003/pre/03ALONE - out_dir: /home/ENG/engs1170/Code/dcm2niix/testing - filename: fa3 + in_dir: /path/to/second/file + out_dir: /path/to/output/directory + filename: fa3 \ No newline at end of file From 237fe44b634a0f70d371f13ea76d9eb57d2a5d8c Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Fri, 26 Feb 2016 13:40:45 +0000 Subject: [PATCH 3/7] update readme --- README.md | 8 ++++---- run_configuration.yaml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index b29ec30b..110cb85e 100755 --- a/README.md +++ b/README.md @@ -52,12 +52,12 @@ Options: isOnlySingleFile: false Files: - - in_dir: /path/to/first/file - out_dir: /path/to/output/directory + in_dir: /path/to/first/folder + out_dir: /path/to/output/folder filename: dcemri - - in_dir: /path/to/second/file - out_dir: /path/to/output/directory + in_dir: /path/to/second/folder + out_dir: /path/to/output/folder filename: fa3 ``` diff --git a/run_configuration.yaml b/run_configuration.yaml index 4b3431ca..c6b892a9 100644 --- a/run_configuration.yaml +++ b/run_configuration.yaml @@ -7,10 +7,10 @@ Options: Files: - - in_dir: /path/to/first/file - out_dir: /path/to/output/directory + in_dir: /path/to/first/folder + out_dir: /path/to/output/folder filename: dcemri - - in_dir: /path/to/second/file - out_dir: /path/to/output/directory + in_dir: /path/to/second/folder + out_dir: /path/to/output/folder filename: fa3 \ No newline at end of file From ec1d734844b4dae079a9b4118b60c846261a958e Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Mon, 7 Mar 2016 17:56:59 +0000 Subject: [PATCH 4/7] update readme 2 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 110cb85e..d059365d 100755 --- a/README.md +++ b/README.md @@ -31,11 +31,10 @@ dcm2niix is a designed to convert neuroimaging data from the NIfTI format to the ## Running -#### Single conversion See help: `dcm2niix -h` e.g. `dcm2niix /path/to/dicom/folder` -#### Batch conversion +**Optional batch processing version** Perform a batch conversion of multiple dicoms using the configurations specified in a yaml file. ```bash dcm2niibatch run_configuration.yaml @@ -74,6 +73,7 @@ cmake .. ``` `dcm2niix` will be created in the `bin` folder +** optional batch processing version ** The batch processing binary `dcm2niibatch` is optional. To build `dcm2niibatch` as well change the cmake command to `cmake -DBATCH_VERSION=ON ..` This requires the following libraries: From ab2bf4b96a26572a3e1c33c926c8f53453bfe750 Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Mon, 7 Mar 2016 17:58:31 +0000 Subject: [PATCH 5/7] update readme 3 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d059365d..5f67c696 100755 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ See help: `dcm2niix -h` e.g. `dcm2niix /path/to/dicom/folder` **Optional batch processing version** + Perform a batch conversion of multiple dicoms using the configurations specified in a yaml file. ```bash dcm2niibatch run_configuration.yaml @@ -74,6 +75,7 @@ cmake .. `dcm2niix` will be created in the `bin` folder ** optional batch processing version ** + The batch processing binary `dcm2niibatch` is optional. To build `dcm2niibatch` as well change the cmake command to `cmake -DBATCH_VERSION=ON ..` This requires the following libraries: From 577bd7a3bce286daff37f4fec972d9f8fc9bf900 Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Mon, 7 Mar 2016 17:59:41 +0000 Subject: [PATCH 6/7] update readme 4 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f67c696..c86831a2 100755 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ dcm2niix is a designed to convert neuroimaging data from the NIfTI format to the See help: `dcm2niix -h` e.g. `dcm2niix /path/to/dicom/folder` -**Optional batch processing version** +**Optional batch processing version:** Perform a batch conversion of multiple dicoms using the configurations specified in a yaml file. ```bash @@ -74,7 +74,7 @@ cmake .. ``` `dcm2niix` will be created in the `bin` folder -** optional batch processing version ** +** optional batch processing version: ** The batch processing binary `dcm2niibatch` is optional. To build `dcm2niibatch` as well change the cmake command to `cmake -DBATCH_VERSION=ON ..` From 8dbd41ab24f5faa8eb36e47ef66e4c6a90bab226 Mon Sep 17 00:00:00 2001 From: Benjamin Irving Date: Mon, 7 Mar 2016 18:00:30 +0000 Subject: [PATCH 7/7] update readme 5 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c86831a2..af3b9b9e 100755 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ cmake .. ``` `dcm2niix` will be created in the `bin` folder -** optional batch processing version: ** +**optional batch processing version:** The batch processing binary `dcm2niibatch` is optional. To build `dcm2niibatch` as well change the cmake command to `cmake -DBATCH_VERSION=ON ..`