High dimensional Canny edge detection
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data/test
doc
examples
hyper_canny
include
scripts
src
test
.codecov.yml
.editorconfig
.gitignore
.syntastic_cpp_config
.travis.yml
Dockerfile
LICENSE
Makefile
README.md
meson.build
setup.py

README.md

Build Status codecov DOI

HyperCanny project

Doing Canny edge detection in higher dimensions.

Requirements

HyperCanny is written in C++17, using NetCDF as data container. Dependencies:

Building

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.

Python module

The code also compiles into a Python module. From the project root run:

> pip install .

Testing / Development

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.

coverage

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}).

code quality

  • 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 the scripts/check-headers.sh script. This also checks that all headers have a Doxygen \file directive.

development

  • If you add .cc files somewhere, be sure to add them to the appropriate meson.build file. This is done automatically using the scripts/premeson.sh script.