This project demonstrates grayscale image segmentation using the watershed algorithm implemented through NVIDIA’s NPP library. The technique is based on the GPU-accelerated approach detailed in the paper:
"Efficient 2D and 3D Watershed on Graphics Processing Unit: Block-Asynchronous Approaches Based on Cellular Automata" by Pablo Quesada-Barriuso et al.
- Image Segmentation
- Watershed Transform
- NPP (NVIDIA Performance Primitives)
- Operating System: Linux or Windows
- CPU Architecture: x86_64
- GPU Support: CUDA-enabled GPUs (SM 7.0, 7.2, 7.5, 8.0, and above)
- Toolkit: CUDA Toolkit 11.5 or later
- Libraries: NPP, CMake, and CUDA Runtime
$ mkdir build
$ cd build
$ cmake ..
$ make$ mkdir build
$ cd build
$ cmake -DCMAKE_GENERATOR_PLATFORM=x64 ..
# Open the generated `watershedSegmentation.sln` in Visual Studio 2017 and build the solution./watershedSegmentation [-b number-of-batch]-b <number>: Number of images to process in a batch (default is 3).
./watershedSegmentation -b 3Processed Lena_512x512_8u_Gray.raw
Processed CT_skull_512x512_8u_Gray.raw
Processed Rocks_512x512_8u_Gray.raw
Processed coins_500x383_8u_Gray.raw
Processed coins_overlay_500x569_8u_Gray.raw
- Sample provided by NVIDIA Corporation.
- Based on academic work cited above.