Skip to content

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.

License

Notifications You must be signed in to change notification settings

Arash1381-y/Borde

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Borde - GPU-accelerated edge detection using CUDA

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 and Limitations 🎭

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.

Demo Images 📷

Eiffel Tower

Engine

Flower and Butterfly

Requirements 📋

CPU:

  • CMake 3.10 or higher
  • GCC 7.5.0 or higher

GPU:

  • CUDA 10.1 or higher

Compiling 🔨

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.

  1. brightness_filter_runner_cpu/gpu : for brightness filter
  2. grayscale_filter_runner_cpu/gpu : for grayscale filter
  3. sobel_filter_runner_cpu/gpu : for sobel filter

Running 🏃

After compiling, you can run the executables in ./runners directory.

Grayscale Filter

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>

Brightness Filter

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>

Sobel Filter

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>

Default Values 📄

You can check and set the default values in ./config.h file.

Contributing 🤝

Contributions are welcome! Please feel free to submit a Pull Request.

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published