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

https://github.com/salihmezraoui/image-quilting

A C++ project implementing the Image Quilting algorithm based on Efros and Freeman's method for seamless texture synthesis. It generates larger, continuous textures by stitching overlapping patches from a source image. Using Minimum Error Boundary Cut and MSE Patch Selection, it minimizes visible seams and achieves high-quality texture results.
https://github.com/salihmezraoui/image-quilting

clion cmake cpp image-processing image-quilting

Last synced: 3 months ago
JSON representation

A C++ project implementing the Image Quilting algorithm based on Efros and Freeman's method for seamless texture synthesis. It generates larger, continuous textures by stitching overlapping patches from a source image. Using Minimum Error Boundary Cut and MSE Patch Selection, it minimizes visible seams and achieves high-quality texture results.

Awesome Lists containing this project

README

        

# Image Quilting

This project was an exam submission for the *Tool- und Plugin-Programmierung* module, and I received a grade of **1.0**.

This project implements advanced **image quilting techniques** to generate large, visually coherent textures from small input patches. The method minimizes visible seams and repetitive patterns using algorithms such as **Minimum Error Boundary Cut** and **Mean Squared Error (MSE)**-based block selection.

## Features
- Seamless integration of texture patches from input images.
- Optimization of texture coherence using overlap regions and minimal cuts.
- Flexible parameters for block size, overlap, and tolerance, enabling diverse texture outputs.
- Applications in **computer graphics**, **game design**, and **digital art**.

## Project Structure
- **`include/`**: Header files defining core interfaces (e.g., `TextureQuilter.h`, `SeamCarving.h`, `ErrorMetrics.h`).
- **`src/`**: Implementation of core algorithms (e.g., quilting logic, seam carving, and error metrics).
- **`gallery/`**: Input and output images demonstrating the quilting process.
- **`CMakeLists.txt`**: Build configuration file.

## Technologies
- **C++**
- **CMake** For build automation.
- **Image Processing:** Implementation of Efros and Freeman’s Image Quilting Algorithm.

## Documentation

For detailed project documentation, please refer to the `Ausarbeitung` folder.

## Usage
Compile the project using CMake and run the executable with specified parameters:

```bash
./ImageQuilting_main --input \
--output \
--width \
--height \
--tileW \
--tileH \
--seamW \
--seamH \
--mseSelect true \
--minCut true \
--tolerance 0.1