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: 12 months 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 (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-05T09:14:22.000Z (about 1 year ago)
- Last Synced: 2025-03-05T10:24:36.882Z (about 1 year 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** |
|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|