Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/npazosmendez/gpu-filters
Image-processing filters implemented on GPU with OpenCL
https://github.com/npazosmendez/gpu-filters
c image-processing opencl
Last synced: 2 months ago
JSON representation
Image-processing filters implemented on GPU with OpenCL
- Host: GitHub
- URL: https://github.com/npazosmendez/gpu-filters
- Owner: npazosmendez
- License: mit
- Created: 2018-01-27T21:32:48.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-07T16:40:22.000Z (over 2 years ago)
- Last Synced: 2024-04-15T22:53:25.369Z (10 months ago)
- Topics: c, image-processing, opencl
- Language: C++
- Homepage:
- Size: 40.5 MB
- Stars: 11
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# GPU Filters
Four image processing filters implemented in pure C and in OpenCL to compare their performances.
**Edge Detection** with Canny's algorithm
Raw | Processed
:-------------------------:|:-------------------------:
![](readme/canny_raw.png) | ![](readme/canny.png)**Line Detection** with Hough's transform
Raw | Processed
:-------------------------:|:-------------------------:
![](readme/hough_raw.png) | ![](readme/hough.png)**Dense Optical Flow** with Lucas-Kanade
Raw | Processed
:-------------------------:|:-------------------------:
![](readme/kanade_raw.gif) | ![](readme/kanade.gif)**Region Filling** via exemplar-based image inpainting
Raw | Processed
:-------------------------:|:-------------------------:
![](readme/inpainting_raw.png) | ![](readme/inpainting.png)# Dependencies
* ### OpenCL 1.2 with C++ bindingsFilters are implemented using OpenCL 1.2. To download needed headers and libraries (linux) for compilation run:
```shell
sudo apt install ocl-icd-libopencl1
sudo apt install opencl-headers
sudo apt install clinfo
```We've also used the C++ bindings, which are included in the repo.
A device that supports OpenCL is needed to run the program. Drivers installation varies. These are some devices in which the program ran and how to install their drivers:
**NVIDIA GeForce 940m**
```shell
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-355 nvidia-prime
sudo reboot
```* ### OpenCV 2
For camera input only. **Central algorithms are not implemented using this library.**
To get eveything needed to compile run:
```shell
sudo apt-get install libopencv-dev
```* ### Qt 4.8
For an advanced GUI only, not actually needed to run the bascis. More information at `gui/readme.md`