Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/neel-dandiwala/npp_cudaatscale_project

For the enterprise course project, I have created a model that executes the histogram equalisation procedure on the given input image file.
https://github.com/neel-dandiwala/npp_cudaatscale_project

cuda npp

Last synced: about 2 months ago
JSON representation

For the enterprise course project, I have created a model that executes the histogram equalisation procedure on the given input image file.

Awesome Lists containing this project

README

        

# CUDAatScaleForTheEnterpriseCourseProject
For the enterprise course project, I have created a model that executes the histogram equalisation procedure on the given input image file.

## Project Description
For Histogram Equalisation, the number of bins and levels are essential. Hence, I have set them to constant value of 255 and 256 respectively. These values were copied to the device side and assigned the Npp32s datatype. The object's size pertaining to the Range of Interest was set according to the device container's dimensions. Moreover, a Device-Scratch buffer is needed to store the intermediate values of histogram. The levels' values on host are computed where levelCount works as nLevel. Next, the histogram is calculated and the variables histDevice acts as *pHist, while oDeviceSrc.pitch() as nSrcStep. After copying histogram and levels to the host memory, the look up table is created. The look up transformation to the image is applied and a device image stores the result. Finally, image color processing is performed using linear interpolation between various types of color look up tables. The result is saved and all device and npp data structures are freed.

## Code Organization

```bin/```
This folder holds the executable code that is built automatically by running `make build`. Executable code is name as histEqualisation.exe.

```data/```
This folder holds two PGM images used for the execution. The first image named landscape.pgm is just 266.6 KB. The second input is called as landscape_HUGE.pgm which is 17.09 MB. The code was successfully executed using both the inputs.

```lib/```
Includes libraries that are not installed via the Operating System-specific package manager, making it easier for inclusion/linking.

```src/```
The source code is named as histEqualisation.cpp and is the main program file.

```output_images/```
This folder holds the outputs of the project generated by running the code on individual inputs.



Output pertaining to small image (266.6KB)

![small_image_output](./data/landscape_histEq_README.png)



Output pertaining to large image (17.09MB)

![large_image_output](./data/landscape_HUGE_histEq_README.png)

```Makefile```
The rudimentary scripts for building the project's code in an automatic fashion are mentioned in this file. The user can individually build, run and clean the files and executables or run the command named all to execute each operation.

```run.sh```
An optional script used to run your executable code, either with or without command-line arguments.