HyperCanny

HyperCanny.

Summary

Finds edges in high-dimensional data using the Canny algorithm.

Information
Code Meta
Readme

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

```bash

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:

```bash

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.
Library
37:100
[img]
abrupt-climate_hyper-canny.json

Download (7kB)
View Item