This project provides a common interface for some popular functions/methods used in the CBICA research center. It is actively maintained and tested on Windows x64 and Linux (CentOS6) x64.
All the functions are standalone in nature; i.e., they are header-only and can be exported individually for use/distribution in projects.
Currently, the Toolkit has been tested to be working on Windows x64 using MS Visual Studio 2012 while linking against ITK/4.7.1 and ITK/4.9.0 built with options specified in SBIA internal Wiki (http://sbia-wiki.uphs.upenn.edu/wiki/index.php/Third-party_Software#ITK).
TO DO:
- Individual executables for functions to make Python wrapping easier
[Request a new function via eLog.]
Installation
Requirements
- CMake (for project configuration)
- C++ compiler
- ITK (for ITK-based classes)
- OpenCV (for classes that do machine learning)
See the Installation Page for details.
Available Functions and Classes
- Full Functions List
- Full Class List
Overview
- Basic Utilities (no third party library dependency): These are in the Functions section of the cbicaUtilities.h file.
- Basic Classes: These make a C++ developer's life easier; no third party dependency.
- CmdParser: This is a universal command line parser. Add parameters, descriptions and call on them from the command line. Details in the header file. It picks up exe name using getExecutableName() but it can be set in the class. The parameters "u/usage", "v/version" and "h/help" are automatically set. 'usage' is basic usage details, 'help' is verbose help and 'version' is version details (picked up automatically from parent CMake file). For full documentation, see the cbica::CmdParser documentation.
- Logging: A logging class which generates machine-parseable logs. This can output to both console (default behavior) and a file. For full documentation, see the cbica::Logging documentation. Generated log is in the following format:
<4 digit year>:<2 digit month>:<2 digit date>,<2 digit 24 hour>:<2 digit minute>:<2 digit second>;<exe name>;<user name>
- ITK Utilities (dependency on ITK): These are in the Functions section of the cbicaITKUtilities.h file.
- ITK-based Safe I/O Functions: These functions are used for safe I/O operations for various medical images. Details are in the cbicaITKUtilities.h file.
- Host of other specialized functions from the
src/classes/itk
folder.
Benchmarking Executable
This is a shell executable that is used for benchmarking different algorithms and applications. This provides a ready-to-use way for comparing different algorithm outputs with the one that needs to be tested for multiple inputs. See src/Benchmarking.cxx
for details.
TO DO
Request a new function by emailing dev@c.nosp@m.bica.nosp@m..upen.nosp@m.n.ed.nosp@m.u
Developer Information
The CBICATk has a certain code guideline. For details, please see the For Developers
Licensing information
See the CBICA License or "LICENSE" file.
The CBICATk code incorporates 3rd party libraries and toolkits, potentially including but not limited to:
All rights to these components are subject to the terms and licenses of their respective owners. All trademarks are the property of their respective owners.