Skip to content

audreylearns/Image_Filter

Repository files navigation

Parallel Image Processing

A terminal based application applying color filters, edge detection, and gaussian blur using parallel algorithms with OpenMP.

app_preview

  • Incorporates an image processing library, OpenCV for matrix construction, pixel channel access, loading, saving and displaying the images.
  • Applies parallel algorithm with OpenMP directives: parallel for collapse, num_threads specification, and single parallel region.

Prerequisites & Instructions

  • Download and install CMake: https://cmake.org/
  • Download and install OpenCV: https://opencv.org/releases/
  • Clone this repo, or download the .zip and unzip
  • Into the project's directory build: cmake --build .\build\ --config Release
  • Run: .\build\Release\prjname.exe

Method:

  • Pixel Channel Manipulation - setting opposing channels to 0 or 255 to intensify for the selected color
  • Grayscale - Using a single channel and calculating the luma of each pixel with sRGB values
  • Gaussian Blur Theory - Using a Gaussian kernel of 7 and sigma of 7 for blur intensity followed by calculating the weight of each neighbioring pixel
  • Edge Detection - Using Difference of Gaussians Theory with a sigma of 2 and 9, a kernel of 7 and threshold intensity of 4

Filters Available

Colorize

image

Blur

image

Edge Detection

image

Perfomance

Colorize - Primary

image

Colorize - Secondary

image

Colorize - Grayscale

image

Colorize - Complimentary Inverse

image

Blur - Gaussian Blur

image

Edge Detection - Difference of Gaussians

image

About

A C++ terminal-based application utilizing CMake for building and apply color filters, edge detection, and Gaussian blur using parallel algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages