https://github.com/umer-farooq-cs/canny-edge-detector
High-performance Canny edge detector with CPU and CUDA implementations. Loads PGM images, performs Gaussian smoothing, gradients, non-max suppression, and hysteresis. Benchmarks both paths, outputs edge maps, and reports speedup. Simple Makefile, sample images included.
https://github.com/umer-farooq-cs/canny-edge-detector
c canny-edge-detection computer-vision cpp cuda gpu high-performance-computing image-processing nvcc pgm
Last synced: about 2 months ago
JSON representation
High-performance Canny edge detector with CPU and CUDA implementations. Loads PGM images, performs Gaussian smoothing, gradients, non-max suppression, and hysteresis. Benchmarks both paths, outputs edge maps, and reports speedup. Simple Makefile, sample images included.
- Host: GitHub
- URL: https://github.com/umer-farooq-cs/canny-edge-detector
- Owner: Umer-Farooq-CS
- License: mit
- Created: 2025-09-12T14:31:08.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-12T14:32:11.000Z (9 months ago)
- Last Synced: 2025-09-12T16:36:55.806Z (9 months ago)
- Topics: c, canny-edge-detection, computer-vision, cpp, cuda, gpu, high-performance-computing, image-processing, nvcc, pgm
- Language: C
- Homepage:
- Size: 91.8 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
### CudaCanny Edge Detector
A high-performance implementation of the Canny edge detector with both CPU and CUDA GPU paths. It loads PGM images, runs Gaussian smoothing, gradient, non-maximum suppression, and hysteresis, then saves CPU and GPU edge maps while reporting timing and speedup.
#### Features
- CPU and CUDA implementations side-by-side
- Benchmarking with timing and speedup
- Simple Makefile build
#### Requirements
- CUDA Toolkit (nvcc)
- GCC/Clang for C sources
#### Build
```bash
make
```
Binaries are placed in `bin/`.
#### Run
```bash
./bin/canny canny/pics/pic_large.pgm 2.5 0.25 0.5
```
Adjust sigma, tlow, thigh as needed. Example images are in `canny/pics/`.
#### Project Layout
- `src/`: C/CUDA sources
- `include/`: headers
- `bin/`: compiled binary
- `build/`: object files
- `canny/pics/`: sample images (PGM)