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-devPlease refer to the Arch documentation.
For AMD GPUs
sudo pacman -S clinfo opencl-mesaFor NVIDIA GPUs
sudo pacman -S clinfo opencl-nvidiaFor Intel GPUs
sudo pacman -S intel-compute-runtimeAll 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 clinfosudo pacman -S opencvIn addition to opencv, you may require the hdf5 library as well. You can install this using an AUR package manager.
yay -S hdf5Note
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 ..
makecd build/src/RealtimeImageProcessing/Release/
./RealtimeImageProcessing



