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 buildTo 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.shscript. - To check that all headers start with license info and a
#pragma oncedirective, run thescripts/check-headers.shscript. This also checks that all headers have a Doxygen\filedirective.
- If you add
.ccfiles somewhere, be sure to add them to the appropriatemeson.buildfile. This is done automatically using thescripts/premeson.shscript.