Skip to content

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

License

Notifications You must be signed in to change notification settings

Neel-Dandiwala/NPP_CudaAtScale_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Output pertaining to large image (17.09MB)
large_image_output

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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages