Borde is a GPU-accelerated edge detection app written in C++ and CUDA. It is designed to be fast, easy to use, and easy to integrate into existing projects. Borde is licensed under the MIT license.
Features:
- Well-Documented: Borde is well-documented.
- Easy to Use: Borde is easy to use.
- Configurable: Borde is configurable and allows you to change the parameters of the edge detection algorithm.
Limitations:
- Only PNG: Borde only supports PNG images for now.
- Only Sobel: Borde only supports the Sobel operator for now.
CPU:
- CMake 3.10 or higher
- GCC 7.5.0 or higher
GPU:
- CUDA 10.1 or higher
To compile Borde, Go to ./runners
and run the following commands:
For CPU version:
$ make cpu
For GPU version:
$ make gpu
after compiling, you can see the 3 executables in ./runners
directory.
- brightness_filter_runner_cpu/gpu : for brightness filter
- grayscale_filter_runner_cpu/gpu : for grayscale filter
- sobel_filter_runner_cpu/gpu : for sobel filter
After compiling, you can run the executables in ./runners
directory.
Run the Grayscale Filter with no arguments to see the usage and default values:
$ ./grayscale_filter_runner_cpu/gpu.out
Available arguments:
Usage: ./grayscale_filter_runner_cpu/gpu.out <input_path> <input_filename> <result_path>
Run the Brightness Filter with no arguments to see the usage and default values:
$ ./brightness_filter_runner_cpu/gpu.out
Available arguments:
Usage: ./brightness_filter_runner_cpu/gpu.out <input_path> <input_filename> <result_path> <brightness_change>
Run the Sobel Filter with no arguments to see the usage and default values:
$ ./sobel_filter_runner_cpu/gpu.out
Available arguments:
Usage: ./sobel_filter_runner_cpu/gpu.out <input_path> <input_filename> <result_path> <threshold> <scale>
You can check and set the default values in ./config.h
file.
Contributions are welcome! Please feel free to submit a Pull Request.