This project implements the Canny edge detection algorithm using NVIDIA Performance Primitives (NPP) libraries combined with CUDA for efficient parallel processing. The goal is to leverage GPU acceleration for real-time edge detection in images.
- Canny Edge Detection Algorithm: Implementation of the classical Canny edge detection algorithm using CUDA kernels.
- NPP Integration: Utilization of NVIDIA Performance Primitives (NPP) for optimized image processing operations.
- Parallel Processing: Harnessing CUDA for parallel execution of image convolution, gradient computation, non-maximum suppression, and hysteresis thresholding.
- Memory Management: Efficient memory allocation and utilization strategies on the GPU to handle large image data.
- Input and Output Handling: Loading images from disk, processing them on the GPU, and saving the resulting edge-detected images.
- A cybertruck image is being used for this code
src/
: Contains the main CUDA C++ source files for Canny edge detection.include/
: Header files for CUDA kernels and utility functions.bin/
: Executable binaries built usingmake
.data/
: Input images for testing and validation.output_images/
: Directory to store the output images generated by the Canny edge detector.
To build the project, navigate to the root directory and run:
make build
After building, execute the Canny edge detector using:
make run