Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/timomt/image-lab

A simple image manipulator to visualize matrix transformations
https://github.com/timomt/image-lab

Last synced: 16 days ago
JSON representation

A simple image manipulator to visualize matrix transformations

Awesome Lists containing this project

README

        

# image-lab

## Overview

**image-lab** is a simple Java Swing application that allows you to load images and apply matrix transformations to their color (e.g., RGB) and coordinate properties. This tool is designed to help you visualize how matrices can be used to alter images, providing a better understanding of linear as well as affine transformations in the context of image processing.

## Features

- Load images from various formats (e.g., PNG, JPEG, BMP)
- Apply matrix transformations to image colors (RGB)
- Apply matrix transformations to image coordinates
- Visualize the effects of different matrix transformations
- Save transformed images

## Good to know

- Image transformations are generally calculated relatively to the center of the image, not the top left corner
- The cartesian coordinate system is used for matrix transformations
- Color transformation is currently only supported on images with a color spectrum representable as a 3x1 matrix (e.g., RGB)
- The input fields are evaluated using exp4j (https://github.com/fasseg/exp4j), allowing for mathematical inputs such as cos() and sin().
For more information on its capabilities, refer to the repository and documentation (https://www.objecthunter.net/ exp4j/), particularly the sections on "Built-in operators" and "Built-in functions."

## Table of Contents

- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)

## Prerequisites

- JDK 21
- Maven

## Installation
```sh
git clone https://github.com/timomt/image-lab.git
cd image-lab
mvn clean install
```

## Usage
Run the jar file generated by mvn clean install in the target directory

## Examples
![Screenshot_20240615_201830](https://github.com/timomt/image-lab/assets/119742190/850c3163-0ca6-4160-98e3-0855c30cf704)
![Screenshot_20240615_201910](https://github.com/timomt/image-lab/assets/119742190/a4fd914b-c2e3-4752-bc9a-9d7977afe6c5)