Application of OpenCL for real-time image processing on embedded hardware. This work demonstrates the development of image processing methods such as grayscale conversion, edge-detection, and Gaussian blur. The outcome of this project is to highlight OpenCL's praticality for real-world scenarios.
OpenCL is typically packaged with graphic drivers from vendors like AMD, Intel, and NVIDIA. To ensure that OpenCL is properly installed on your system, install the latest graphic drivers on your device.
- For AMD GPUs, download drivers from the AMD website.
- For NVIDIA GPUs, download drivers from the NVIDIA website.
- For Intel GPUs, download drivers from the Intel website.
sudo apt-get install clinfo ocl-icd-opencl-dev
Please refer to the Arch documentation.
For AMD GPUs
sudo pacman -S clinfo opencl-mesa
For NVIDIA GPUs
sudo pacman -S clinfo opencl-nvidia
For Intel GPUs
sudo pacman -S intel-compute-runtime
All applications in this project utilises the OpenCV library. See the official OpenCV website.
Download the package from the official OpenCV website or its GitHub page.
sudo apt install libopencv-dev clinfo
sudo pacman -S opencv
In addition to opencv
, you may require the hdf5
library as well. You can install this using an AUR
package manager.
yay -S hdf5
Note
Ensure that CMake
is properly installed and added to the PATH
environment variable on your machine. See CMake official documentation.
This project is developed using visual studio code IDE. The CMake Tools extension is used extensively within the project development. It is highly recommended that users develop with VS code with this extension.
Important
Ensure that camera source is available (webcam or USB camera).
To run the RealtimeImageProcessing
application, run the following commands. This will build the RealtimeImageProcesing
apllication in Release
mode.
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
cd build/src/RealtimeImageProcessing/Release/
./RealtimeImageProcessing