Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/siddhant-vij/concurrent-image-color-changer

Color change for an Image using concurrency in multiple programming languages with OpenCV.
https://github.com/siddhant-vij/concurrent-image-color-changer

color-change concurrency cpp go image-manipulation java multithreading opencv python

Last synced: 3 days ago
JSON representation

Color change for an Image using concurrency in multiple programming languages with OpenCV.

Awesome Lists containing this project

README

        

# Concurrent Image Color Changer

Aimed at demonstrating the application of concurrency in performing image color transformations. By implementing this project in Java, C++, Go, and Python, it showcases the unique concurrency models of each language and their effectiveness in processing large image files.




The project not only provides insights into parallel computing across different programming environments but also offers a practical tool for image processing tasks.


## Table of Contents

1. [Features](#features)
1. [Technical Scope](#technical-scope)
1. [Installation and Usage](#installation-and-usage)
1. [Contributing](#contributing)
1. [License](#license)


## Features

- Support for basic color transformation.
- Concurrent processing of image segments to speed up transformations.
- Performance metrics to compare concurrent vs serial processing times across languages.
- Multi-language support to highlight different approaches to concurrency.


## Technical Scope

- **Java**: Utilization of ForkJoinPool for parallel processing of image segments.
- **C++**: Employment of std::thread and std::async for concurrent image processing tasks.
- **Go**: Implementation with goroutines and channels for efficient parallel processing.
- **Python**: Use of concurrent.futures and multiprocessing for threading and process-based parallelism.


## Installation and Usage

1. **Clone the Repository**:
```bash
git clone https://github.com/siddhant-vij/Concurrent-Image-Color-Changer.git
```
2. **Navigate to Language Directory**:
```bash
cd Concurrent-Image-Color-Changer/[language]
```
3. **Install Dependencies**: Standard instructions to be followed for each language, if any external dependency.
4. **Build and Run the Application**: Standard instructions to be followed for each language.


## Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. **Fork the Project**
2. **Create your Feature Branch**:
```bash
git checkout -b feature/AmazingFeature
```
3. **Commit your Changes**:
```bash
git commit -m 'Add some AmazingFeature'
```
4. **Push to the Branch**:
```bash
git push origin feature/AmazingFeature
```
5. **Open a Pull Request**


## License

Distributed under the MIT License. See [`LICENSE`](https://github.com/siddhant-vij/Concurrent-Image-Color-Changer/blob/main/LICENSE) for more information.