/TextureSynthesis

Texture synthesis from examples

Primary LanguageC#OtherNOASSERTION

The algorithms are:

  1. Full neighbourhood search algorithm of Scott Draves and Alexei Efros + Thomas Leung and Li-Yi Wei + Marc Levoy is probably the simplest texture synthesis algorithm imaginable.
  2. K-coherent neighbourhood search of Michael Ashikhmin and Xin Tong + Jingdan Zhangz + Ligang Liu + Xi Wangz + Baining Guo + Heung-Yeung Shum takes computational burden from the synthesis to the analysis part and therefore is better suited for synthesizing large textures.
  3. Resynthesis algorithm of P. F. Harrison is scale-invariant, fast, supports constraints and practically never produces completely unsatisfactory results.

Note that my implementations are not completely true to the original papers.

Watch a video demonstration of P. F. Harrison's algorithm on YouTube: https://www.youtube.com/watch?v=8sUMBMpZNzk.

How to build

This is a console application that depends only on the standard library. Get .NET Core for Windows, Linux or macOS and run

dotnet run --configuration Release TextureSynthesis.csproj