https://github.com/giog97/histogram_equalization_cuda
Performance comparison of sequential and parallel CUDA Histogram Equalization for image contrast enhancement.
https://github.com/giog97/histogram_equalization_cuda
cuda cuda-kernels cuda-programming histogram-equalization image-processing parallel-computing parallel-programming
Last synced: 14 days ago
JSON representation
Performance comparison of sequential and parallel CUDA Histogram Equalization for image contrast enhancement.
- Host: GitHub
- URL: https://github.com/giog97/histogram_equalization_cuda
- Owner: Giog97
- Created: 2025-02-06T09:50:43.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-03-05T09:14:22.000Z (about 2 months ago)
- Last Synced: 2025-03-05T10:24:36.882Z (about 2 months ago)
- Topics: cuda, cuda-kernels, cuda-programming, histogram-equalization, image-processing, parallel-computing, parallel-programming
- Language: C++
- Homepage:
- Size: 68 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π¨ **Histogram Equalization to Improve Image Contrast**
π *Comparison between **sequential** and **parallel** implementations*> This project explores **Histogram Equalization** to enhance image contrast, comparing a **sequential** version with an optimized **parallel** version using **CUDA**.
---
## π οΈ **Features**
- β¬οΈ **Image contrast enhancement** through **Histogram Equalization**.
- β±οΈ **Performance comparison** between sequential and parallel versions.
- π Support for `.jpg`, `.png`, and `.bmp` image files.
- πΎ Results are saved in a dedicated folder.---
## π₯οΈ **Languages and Libraries Used**
β **C++**
β **OpenCV** (for image processing).
β **CUDA** (for parallelization).
β **MSVC** + **nvcc** (for compilation).
β **CMake** (for cross-platform build).---
## βοΈ **Usage**
1. **Add images** to the `./img` directory. Some sample images of various sizes are already included in the project.
2. **Run the program**.
3. **Select an image** from the list displayed in the terminal (images inside the `./img` directory).
4. View the results in the `./img_results` directory and check the execution time for both versions.π‘ *The program will display execution times for both implementations!*
---
## ποΈ **Resulting Images:**
The images will be saved in:
- **`.\img_results\color`**
- **`.\img_results\gray`**---
## π **Report**
A copy of the report (in Italian) can be found [hereπ](./report/Parallel_Computing_Second_Course_Project_Giovanni_Stefanini.pdf).A copy of the presentation can be found [hereπ](./report/Presentation_Project_2_PC_Giovanni_Stefanini.pdf).
---
## π **Contributions**
π‘ This project was developed by **Giovanni Stefanini**, as part of the Parallel Computing course exam.---
### π **Visual Demo**
Contrast enhancement using Histogram Equalization on sample images:| **Original Input** | **Seq. Equalization** | **Parallel Equalization** |
|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|