The algorithms are:
- 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.
- 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.
- 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.
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