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.
- Host: GitHub
- URL: https://github.com/salihmezraoui/image-quilting
- Owner: SalihMezraoui
- Created: 2024-12-31T02:26:57.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-01-13T00:28:26.000Z (5 months ago)
- Last Synced: 2025-01-20T22:21:39.324Z (5 months ago)
- Topics: clion, cmake, cpp, image-processing, image-quilting
- Language: Makefile
- Homepage:
- Size: 4.83 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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