Volume Cartographer 2.27.0
|
Volume Cartographer is a toolkit and set of cross-platform C++ libraries for virtually unwrapping volumetric datasets. It was designed to recover text from CT scans of ancient, badly damaged manuscripts, but can be applied in many volumetric analysis applications.
New to Volume Cartographer? A great place to get started with virtual unwrapping is the tutorial put together by the Vesuvius Challenge.
You can also browse our application list for an overview of our available applications and utilities.
We provide pre-built binaries for our tools through our Homebrew Casks tap:
Our binaries are signed with a generic signature and thus do not pass macOS Gatekeeper on Apple Silicon devices without explicit approval. Since many of our tools are run from the command line, we suggest installing with Homebrew's --no-quarantine
flag.
The main VC.app
GUI will be installed to /Applications/
and the command line tools should be immediately available in Terminal:
We provide multi-architecture Docker images in the GitHub Container Registry. Simply pull our container and Docker will select the appropriate image for your host platform:
Tools can be launched directly using docker run
:
To run the GUI tools, you must additionally set up X11 forwarding from the container.
This project is primarily developed and tested on macOS and Debian/Ubuntu systems. Though it should compile with any C++17 compiler using the Itanium ABI, this has not been tested on Windows. We are accepting contributions to explicitly support other platforms.
Required
Optional
std::filesystem
. If it is not found, then Boost Filesystem is required. This behavior can be controlled with the VC_USE_BOOSTFS
CMake flag.Homebrew can be used to install all of Volume Cartographer's dependencies. We provide a Brewfile
to simplify this process.
This project is built and installed using the CMake build system. If you have already installed the dependencies listed above, compilation should be as simple as:
Many volume-cartographer
libraries can be built in parallel, and compilation times will be improved by running cmake --build build/ -j4
. Alternatively, you can use CMake to generate Ninja build system files:
To install the compiled software and libraries to the CMAKE_INSTALL_PREFIX
, run the install
target:
To assist with installing dependencies, we have created the vc-deps project. While this project can be used on its own to install volume-cartographer dependencies to the system, it is also available as a git submodule within volume-cartographer
. Note that vc-deps
does not install CMake or Qt.
To build and link against the in-source vc-deps
libraries, run the following:
It might be necessary to point CMake to your Qt installation. For example:
This project is instrumented with unit tests using the Google Test framework. To enable test compilation, set the VC_BUILD_TESTS
flag to on:
Tests can then be run using CTest or by running the test
target:
Visit our API documentation here.
Library documentation is built using Doxygen and can be enabled/disabled by setting the VC_BUILD_DOCS
flag. This requires Doxygen and optionally Graphviz. This option is unavailable if Doxygen is not found. Documentation will be installed with the install
target if the VC_INSTALL_DOCS
flag is enabled.
We currently maintain limited Python binding support through pybind11. They are a work-in-progress and should not be used in production code.
Bindings can be built and installed by setting the VC_BUILD_PYTHON_BINDINGS
and VC_INSTALL_PYTHON_BINDINGS
flags:
To use these bindings in Python after installation, import from the volcart
package:
NOTE: Python modules are built as shared libraries, regardless of the BUILD_SHARED_LIBS
flag set by this project. This can cause problems if the Volume Cartographer dependencies are not built as shared libraries. Either install the shared versions of these libraries (preferred) or compile static libraries with position independent code (PIC).
If using vc-deps
to build the dependency libraries, set the appropriate CMake flags:
See CONTRIBUTING.
Except where otherwise indicated, the software in this repository is licensed under the [GNU General Public License v3.0](LICENSE). This project is free software: you can redistribute it and/or modify it under the terms of the GPLv3 or (at your option) any later version.
This project incorporates software from many excellent external libraries and projects. Please see [NOTICE](NOTICE) for more information about the licensing terms of these projects.
Volume Cartographer and the project logo and banner graphics are trademarks of EduceLab.
If you use Volume Cartographer in your research, please cite this repository in your publication using our Zenodo record. For more information about the concepts of virtual unwrapping, please see the following publications: