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

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.

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** |
|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |