Implemented Algorithms
Quilting
Implementation of the image quilting process presented in 1
Wang Tiles
Implementation of the wang tile texture generation method presented in 2
Bi-Layer Textures
Implementaion of the method presented in 3. Global implementation can be tested, but also 4 independant important step of the algorithm, as described below.
Executable for Linux, Mac & Windows are downloadable
Noise Filter
This filtering method creates homogeneous areas based on noise. It uses a local spectra descriptor coupled with a Joint Bilateral filter. The Local spectra descriptor (T loc) is a spectra of a small neighborhood around the pixel. By comparing this local descriptor, we can determine if two patches belong to the same noise or not. In this way, the filtering will be guided by the spatial distance, and by the spectral distance. If two pixel have a close local spectra, their will be blended.
Parameters:
- size fft = size of local spectra descriptor
- filt size = filtering spatial neighborhoods ( set to 16 )
- sig_freq = distance between spectra (set to 0.01 )
- nb_step_filt = number of interations (set to 5 times )
Noise KMean
This clustering method extract areas based on noise. The method proceed to a kmean clustering using the local spectra descriptor as distance. Clusters in this high dimension domain will be the masks.
Parameters:
- size fft = size of local spectra descriptor
- nb_cluster = usually between 2-4
Synthesis_corel
Extract the noise(PSD) from the different areas determined by the masks using AutoCorrelation constrainted on the content, to only pick up pixel which belong to the mask, discarding the missing informations. Then synthesis a noise layer using 4 for each extracted PSD.
Parameter:
- nb_cluster = need to be correlated with the masks provided
Biscale noise patch exchange:
This is a modified version of the mono-scale On-the-Fly Multi-Scale Infinite Texturing from Example 5, without complex color transfers and texture fetches. It consists in Wang tiles, in which patch contents are randomly exchanged. Allowing for contents to be rotated (by angle θ ∈ {π/4, π/2, 3π/4, π}) and scaled (0.5 ≤ λ ≤ 1), and applying turbulence.
If used in Bi-Layer textures context, structure layer + synchronized maks will be synthesised using this method then Noise layer will be added.
Texton Analysis
Analysis part of Texton Noise 6. Generates all possible sizes of texton for a given input.
Graphcut textures
The GCTexture class implements the patch-based graphcut texture synthesis method described in 7, using the Maxflow library 8. It provides the three selection methods proposed in the paper (random placement, entire patch matching and sub-patch matching) as well as the possibility to refine synthesis results based on cut errors. The implementation of the FFT-based acceleration of SSD evaluation is not available for now. Graphcut texture synthesis combines optimal patch placement and computation of optimal cuts of arbitrary shape, which yields high-quality results for a large class of textures (stochastic to structured).
PatchMatch
The PatchMatch code is adapted from the “minimal unoptimized example of PatchMatch” by Barnes et al. 9 10. PatchMatch is an efficient algorithm for matching small patches between an input and an output texture, that alternates coherent and random searches.
PatchExchange
Implementation of the approach proposed in 5 for infinite texturing. The idea is to cut a given periodic tile into a set of patches, for which alternative contents are seeked among all other possible locations over the tile.
During synthesis, alternative contents are then randomly picked in order to ensure a high degree of variety, while keeping memory consumption very low with respect to other state-of-the-art tiling methods (eg. Wang tiling).
SLIC Superpixels
An implementation of SLIC superpixel 11 method is included in ASTex core under the form of an filter. A usage example can be found in the Test directory
Saliency Filters
An implementation of saliency map computation based on 12 is included in ASTex core under the form of a filter. A usage example can be found in the Test directory.
Periodic plus smooth
An implementation of Periodic plus smooth image decomposition 13
Bibliography
-
Efros, Alexei A. and Freeman, William T. Image Quilting for Texture Synthesis and Transfer, SIGGRAPH ‘01 ↩
-
Michael F. Cohen, Jonathan Shade, Stefan Hiller, Oliver Deussen, Wang Tiles for image and texture generation,ACM SIGGRAPH 2003 ↩
-
Guingo, Geoffrey and Sauvage, Basile and Dischler, Jean-Michel and Cani, Marie-Paule, Bi-Layer Textures: A Model for Synthesis and Deformation of Composite Textures, Comput. Graph. Forum, July 2017, url ↩
-
Bruno Galerne, Yann Gousseau, Jean-Michel Morel, Random Phase Textures: Theory and Synthesis, IEEE Transactions on Image Processing ( Volume: 20, Issue: 1, Jan. 2011 ) DOI: 10.1109/TIP.2010.2052822 url ↩
-
K. Vanhoey, B. Sauvage, F. Larue, J-M. Dischler. On-the-Fly Multi-Scale Infinite Texturing from Example, Siggraph Asia, Hong Kong, ACM Siggraph (Eds.), ACM Siggraph Asia 2013 Papers, Volume 32, n° 6, novembre 2013, doi:10.1145/2508363.2508383, Oral, Long url ↩ ↩2
-
Galerne, B. and Leclaire, A. and Moisan, L. Texton Noise, Computer Graphics Forum 2017, url ↩
-
Vivek Kwatra, Arno Schödl, Irfan Essa, Greg Turk, and Aaron Bobick. Graphcut textures: image and video synthesis using graph cuts. ACM Trans. Graph. (Proc. SIGGRAPH 2003), 22(3):277-286, 2003. DOI:https://doi.org/10.1145/882262.882264 ↩
-
C. Barnes, E. Shechtman, A. Finkelstein, and D. B. Goldman. PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing. ACM Transactions on Graphics (Proc. SIGGRAPH), 28(3), 2009. ↩
-
Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Süsstrunk, SLIC Superpixels Compared to State-of-the-art Superpixel Methods, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 34, num. 11, p. 2274 - 2282, May 2012. url ↩
-
Krahenbuhl, Philipp,Saliency Filters: Contrast Based Filtering for Salient Region Detection, Proceedings of the 2012 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), url ↩
-
Lionel Moisan Periodic Plus Smooth Image Decomposition, Journal of Mathematical Imaging and Vision, February 2011, Volume 39, Issue 2, pp 161–179 url ↩