Skip to content

An implementation of histogram equalisation, using C++ and OpenCL, to showcase the usage of parallel programming.

Notifications You must be signed in to change notification settings

Khthonian/Histogram-Equalisation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Histogram Equalisation

An implementation of histogram equalisation, using C++ and OpenCL, to showcase the usage of parallel programming.

Description

  • The code is designed to handle 8-bit and 16-bit imagery, of both greyscale and RGB varieties.
  • The contents of this code contain adaptations and improvements of Tutorial 2 and Tutorial 3, for the base code and the kernel functions. This can be found at https://github.com/wing8/OpenCL-Tutorials
  • There is also a kernel function that has been adapted from https://github.com/spoolean/HistogramEqualisation
  • The images that the code was tested on include .ppm and .pgm images. These images can be found in the relevant directories.
  • The intHistogram2 and cumHistogramHS2 kernels require extra arguments to be passed and these can be uncommented and commented as necessary, and are labelled accordingly.
  • The intensity histogram implementations feature a serial implementation and a parallel reduction implementation.
  • The cumulative histogram implementations feature a simple implementation, two variations of the Hillis-Steele pattern, and a single implementation of the Blelloch pattern.
  • The user is able to give their own desired bin count, which can affect the output of the image and the histograms produced.
  • Performance metrics and the histograms are displayed to the user via the console.
  • Each step of the model will be indicated as follows: "STEP X - XXXXX"

Issues

  • The 16-bit functionality is only produces a suitable image using a combination of the intHistogram and cumHistogram kernel functions.
  • The cumHistogramHS kernel function calculates a histogram but does not produce a suitable image.

About

An implementation of histogram equalisation, using C++ and OpenCL, to showcase the usage of parallel programming.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published