Skip to content
/ IPEwG Public

Image Processing Engine with GUI in Kotlin, with all algorithms hand written in Kotlin or Python (ML ones)

License

Notifications You must be signed in to change notification settings

G14-Y3/IPEwG

Repository files navigation

Image Processing Engine with GUI

Imperial College London Department of Computing Third Year Software Engineer Group Project (Group 14)

Supervisor: Dr. Pancham Shukla

Please see our group project report. It contains more details about the project, including the development process, project structure, benchmarking, and more information about each functionalities.

Currently submitted and the latest commit is in the master branch. This project is completed within approximately 9 weeks. Please refer to the How-to-use section for more details.

We want to create an image processing engine that does not only include common functionalities, but also include clearly defined advanced processing techniques that can be easily visualized. We want the transformation to be portable: user can export a sequence of transformation and import/apply those operations on different images later, including across different operating systems. We also expect this processing engine to include the visualization of the output of open-source machine learning models in order to allow researcher to compare the performance difference between various models. Ultimately, we want to create a work flow so that anyone who wants to implement a processing routine or include any models can easily do so.

Grayscale Overview Histogram Equalization
ori histeq
Depth Estimation Style Transfer
depth styletransfer

How to Use

We have tried to package the software into executable format (e.g. dmg/exe/deb). However, due to the use of TornadoFx in Kotlin, it has taken significantly longer time than we expected. Thus the most recommended way for launching the software now is by running gradlew script in the root folder.

You need to have JDK any version between 11 to 16 installed on your local computer. In Linux or MacOS, simply run ./gradlew run and it will start the application, or use Intellij to open the project and configure the runner to be gradle with the run command. In Windows, run ./gradlew.bat run. Remember to check the permission of the file gradlew or gradlew.bat.

Below is a list of issues we encountered when trying to package the software into a proper distribution:

  1. GraavlVM has issue with GUI software who need reflection/unsafe will not work unless we compile the source code of these dependencies as well oracle/graal#2232

  2. GraavlVM-native-image-plugin does not work. Not maintained.

  3. FXLauncher does not work. It is not maintained.

  4. Not sure how to use update4j, but looks not working as expected.

  5. javapackager, might working but hard to use with Kotlin. Facing issues.

  6. Launch4j may work, but is Windows only (actually it is easy to run on Linux anyway)

Feature Overview

This is an open-source image processing software built for scientific/research purposes. We include most common features that might be used frequently in researches or professional photo editing such as inverse color, greyscale, as well as advanced features such as neural style transfer and depth estimation. We also support different viewing methods, pipeline/import/export the sequence of processing, batch processing. Below is a list of features with detailed descriptions.

Basic Processing Features

Advanced Processing Features

More Features

Known Issues

About

Image Processing Engine with GUI in Kotlin, with all algorithms hand written in Kotlin or Python (ML ones)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages