https://github.com/giog97/mean_shift_image_segmentation_openmp
Performance comparison of sequential and parallel OpenMP MeanShift for image segmentation.
https://github.com/giog97/mean_shift_image_segmentation_openmp
image-processing mean-shift opencv openmp parallel-computing parallel-programming
Last synced: 11 months ago
JSON representation
Performance comparison of sequential and parallel OpenMP MeanShift for image segmentation.
- Host: GitHub
- URL: https://github.com/giog97/mean_shift_image_segmentation_openmp
- Owner: Giog97
- Created: 2025-01-14T09:37:49.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-02-14T11:12:14.000Z (11 months ago)
- Last Synced: 2025-02-14T12:24:31.545Z (11 months ago)
- Topics: image-processing, mean-shift, opencv, openmp, parallel-computing, parallel-programming
- Language: SWIG
- Homepage:
- Size: 12 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π¨ **Mean Shift Image Segmentation**
π *Comparison between **sequential** and **parallel** implementations*
> This project explores the **Mean Shift** clustering for image segmentation, comparing a **sequential** version with a **parallel** one optimized with **OpenMP**.
---
## π οΈ **Features**
- βοΈ **Image segmentation** using **Mean Shift**.
- β±οΈ **Performance comparison** between sequential and parallel versions.
- π Support for `.jpg`, `.png`, and `.bmp` image files.
- πΎ Saves results in a dedicated folder.
---
## π₯οΈ **Languages and Libraries Used**
β
**C++**
β
**OpenCV** (for image processing).
β
**OpenMP** (for parallelization).
β
**MinGW** (for compilation).
β
**CMake** (for cross-platform builds).
---
## βοΈ **Usage**
1. **Add images** to the `./img` directory. Some sample 512x512 images are already included in the project.
2. **Choose the version to use** and **run the program**.
3. **Select an image** from the list displayed in the terminal (images in the `./img` directory) and **choose which Mean Shift version** to use.
4. Check the results in the `./img_results` directory and compare the execution time of the chosen version.
π‘ *The program will display execution times for the selected implementation!*
---
## π§ **Customizable Parameters**
- π **Bandwidth**: The search window size (*larger = less detailed segmentation*).
- π― **Epsilon**: Convergence threshold (*smaller = more precise results, but slower*).
- π **Resize Factor**: Rescales the image for faster testing (1 = no scaling).
---
## ποΈ **Resulting Images**
Images will be saved in:
- **`./img_results/sequential_segmented_image_X.jpg`**
- **`./img_results/parallel_segmented_image_X.jpg`**
- **`./img_results/resized_image_X.jpg`**
---
## π **Report**
A copy of the report (in Italian) can be found [hereπ](./report/Parallel_Computing_First_Course_Project_Giovanni_Stefanini.pdf).
A copy of the presentation can be found [hereπ](./report/Presentation_Project_1_PC_Giovanni_Stefanini.pdf).
---
## π **Contributions**
π‘ This project was developed by **Giovanni Stefanini** as part of the Parallel Computing course.
---
### π **Visual Demo**
Mean Shift segmentation applied to the sample images included in the project:
| **Original Input** | **Sequential Segmentation** | **Parallel Segmentation** |
|---------------------|------------------------------|------------------------------|
|  |  |  |
|  |  |  |
|  |  |  |