Doing Canny edge detection in higher dimensions.
HyperCanny is written in C++17, using NetCDF as data container. Dependencies:
- GCC >= 6 or CLANG >= 4.0
- NetCDF-cxx4
HyperCanny uses Meson, and Ninja. To build HyperCanny, run
> meson build # you only need to run this once
> ninja -C build
To run the unit tests, follow up with ninja test
in the build
directory.
Alternatively, there is a Makefile
that runs these commands for you; this also allows for easier integration with some IDEs.
The code also compiles into a Python module. From the project root run:
> pip install .
This project uses Google Test for testing. The source code of gtest
is included in the repository, so you don't need to install it separately.
To run tests with coverage you may want to use the scripts/coverage.sh
script. It recompiles the code with --coverage
, runs tests and then either generates a HTML report using the lcov
tool (./scripts/coverage.sh -html
), or sends the coverage report to codecov (./scripts/coverage.sh -codecov ${CODECOV_TOKEN}
).
- CppCheck is run through the
scripts/run_cppcheck.sh
script. - To check that all headers start with license info and a
#pragma once
directive, run thescripts/check-headers.sh
script. This also checks that all headers have a Doxygen\file
directive.
- If you add
.cc
files somewhere, be sure to add them to the appropriatemeson.build
file. This is done automatically using thescripts/premeson.sh
script.