{"id":25411357,"url":"https://github.com/giog97/histogram_equalization_cuda","last_synced_at":"2025-04-14T08:28:07.964Z","repository":{"id":276111644,"uuid":"928237160","full_name":"Giog97/Histogram_Equalization_CUDA","owner":"Giog97","description":"Performance comparison of sequential and parallel CUDA Histogram Equalization for image contrast enhancement.","archived":false,"fork":false,"pushed_at":"2025-03-05T09:14:22.000Z","size":71260,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-05T10:24:36.882Z","etag":null,"topics":["cuda","cuda-kernels","cuda-programming","histogram-equalization","image-processing","parallel-computing","parallel-programming"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Giog97.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-06T09:50:43.000Z","updated_at":"2025-03-05T09:14:25.000Z","dependencies_parsed_at":"2025-02-14T12:35:45.683Z","dependency_job_id":null,"html_url":"https://github.com/Giog97/Histogram_Equalization_CUDA","commit_stats":null,"previous_names":["giog97/elaborato_2_pc_giovanni_stefanini","giog97/histogram_equalization_cuda"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Giog97%2FHistogram_Equalization_CUDA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Giog97%2FHistogram_Equalization_CUDA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Giog97%2FHistogram_Equalization_CUDA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Giog97%2FHistogram_Equalization_CUDA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Giog97","download_url":"https://codeload.github.com/Giog97/Histogram_Equalization_CUDA/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248845189,"owners_count":21170719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cuda","cuda-kernels","cuda-programming","histogram-equalization","image-processing","parallel-computing","parallel-programming"],"created_at":"2025-02-16T10:17:19.171Z","updated_at":"2025-04-14T08:28:07.953Z","avatar_url":"https://github.com/Giog97.png","language":"C++","readme":"# 🎨 **Histogram Equalization to Improve Image Contrast**\n🚀 *Comparison between **sequential** and **parallel** implementations*\n\n\u003e This project explores **Histogram Equalization** to enhance image contrast, comparing a **sequential** version with an optimized **parallel** version using **CUDA**.\n\n---  \n\n## 🛠️ **Features**\n- ⬆️ **Image contrast enhancement** through **Histogram Equalization**.\n- ⏱️ **Performance comparison** between sequential and parallel versions.\n- 📁 Support for `.jpg`, `.png`, and `.bmp` image files.\n- 💾 Results are saved in a dedicated folder.\n\n---  \n\n## 🖥️ **Languages and Libraries Used**\n✅ **C++**  \n✅ **OpenCV** (for image processing).  \n✅ **CUDA** (for parallelization).  \n✅ **MSVC** + **nvcc** (for compilation).  \n✅ **CMake** (for cross-platform build).\n\n---  \n\n## ⚙️ **Usage**\n1. **Add images** to the `./img` directory. Some sample images of various sizes are already included in the project.\n2. **Run the program**.\n3. **Select an image** from the list displayed in the terminal (images inside the `./img` directory).\n4. View the results in the `./img_results` directory and check the execution time for both versions.\n\n💡 *The program will display execution times for both implementations!*\n\n---  \n\n## 🗂️ **Resulting Images:**\nThe images will be saved in:\n- **`.\\img_results\\color`**\n- **`.\\img_results\\gray`**\n\n---  \n\n## 📄 **Report**\nA copy of the report (in Italian) can be found [here📄](./report/Parallel_Computing_Second_Course_Project_Giovanni_Stefanini.pdf).\n\nA copy of the presentation can be found [here📄](./report/Presentation_Project_2_PC_Giovanni_Stefanini.pdf). \n\n---  \n\n## 🎉 **Contributions**\n💡 This project was developed by **Giovanni Stefanini**, as part of the Parallel Computing course exam.\n\n---  \n\n### 👀 **Visual Demo**\nContrast enhancement using Histogram Equalization on sample images:\n\n| **Original Input**                                                                | **Seq. Equalization**                                                                                           | **Parallel Equalization**                                                                                                    |  \n|------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|    \n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/2_dark_indoor.jpg\" width=\"150\"/\u003e   | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_2_dark_indoor.jpg\" width=\"150\"/\u003e        | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_2_dark_indoor.jpg\" width=\"150\"/\u003e        |  \n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/3_foggy.jpg\" width=\"150\"/\u003e         | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_3_foggy.jpg\" width=\"150\"/\u003e              | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_3_foggy.jpg\" width=\"150\"/\u003e              |\n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/4_overexposed.jpg\" width=\"150\"/\u003e   | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_4_overexposed.jpg\" width=\"150\"/\u003e        | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_4_overexposed.jpg\" width=\"150\"/\u003e        |  \n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/5_underexposed.jpg\" width=\"150\"/\u003e  | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_5_underexposed.jpg\" width=\"150\"/\u003e       | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_5_underexposed.jpg\" width=\"150\"/\u003e       |  \n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/6_overexposed2.JPG\" width=\"150\"/\u003e  | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_6_overexposed2.JPG\" width=\"150\"/\u003e       | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_6_overexposed2.JPG\" width=\"150\"/\u003e       |\n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/7_underexposed2.JPG\" width=\"150\"/\u003e | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_7_underexposed2.JPG\" width=\"150\"/\u003e      | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_7_underexposed2.JPG\" width=\"150\"/\u003e      |\n| \u003cimg src=\"./cmake-build-debug-visual-studio/img/8_highresolution.jpg\" width=\"150\"/\u003e | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_seq_color_8_highresolution.jpg\" width=\"150\"/\u003e     | \u003cimg src=\"./cmake-build-debug-visual-studio/img_results/color/equalized_cuda_color_8_highresolution.jpg\" width=\"150\"/\u003e     |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiog97%2Fhistogram_equalization_cuda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgiog97%2Fhistogram_equalization_cuda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgiog97%2Fhistogram_equalization_cuda/lists"}