siddhant-vij / Concurrent-Image-Color-Changer

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
  2. Technical Scope
  3. Installation and Usage
  4. Contributing
  5. 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:
    git clone https://github.com/siddhant-vij/Concurrent-Image-Color-Changer.git
  2. Navigate to Language Directory:
    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:
    git checkout -b feature/AmazingFeature
  3. Commit your Changes:
    git commit -m 'Add some AmazingFeature'
  4. Push to the Branch:
    git push origin feature/AmazingFeature
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

About

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

License:MIT License


Languages

Language:C++ 39.8%Language:Java 29.9%Language:Python 24.9%Language:Go 2.9%Language:CMake 2.6%