Skip to content

lorenzo-arena/histogram-equalizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Histogram equalizer

This project was made for the "parallel computing" course at the Computer Engineering University of Florence.

Git submodules are used, so make sure to run

$ git submodule init
$ git submodule update

before building the targets.

Goal

The main goal is to write two version of the same program which must compute the histogram of an image an perform an histogram equalization.

Requirements

This project can be built using meson and ninja; the development was made under Ubuntu 20.10.

To build the program you need to navigate to the folder "sequential" or "parallel" and use the following commands:

$ meson builddir
$ cd builddir
$ ninja

The project uses STB Single file libraries for reading and writing images.

You can run the program by specifying an image path:

# To run sequential version
$ cd src/sequential/builddir
$ ./histogram-equalizer-sequential <input_file_path> <output_file_path> [options]

Options

For the sequential project, the following options are available:

  • -p to plot the image histogram and the post-processed image histogram (requires gnuplot to be installed on the system)
  • -s to print the time elapsed for the execution of the program
  • -l to log the histogram and cdf values on stdout

Tests

Some tests are written using the Unity C framework.

There are also some script under utils like verifier.sh which can be used to build multiple project versions, run them and compare the outputs.

Result

The following images show the result after the equalization process:

Before processing After processing
low_contast_pic better_contast_pic

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published