The method is as follows: Visiting the pixels of the output image initialized with a white random noised and assigning the color of the input pixel that has the nearer neighborhood.
represents the shape of the neighborhood that will be used in all the process (-
for the current pixel and - for the
pixels in the neighborhood). (b) and (c) show some pixels of the sample and the
associated neighborhoods. The value of each output pixel is determined by
comparing its neighborhood with all the neighborhoods in the input texture. (1),
(2) and (3) represent respectively the synthesis of the first pixel, of a pixel
in the middle and of the last pixel. The output image is considered toroidal as
shown in (1) and (3). Actually, the last columns and rows of the initial noise
are used, the rows for the synthesis of the pixels of the first rows and the
columns for the pixels of the first columns, because of the causality of the
neighborhood. The black pixels in (1) and (2) represent pixels of the noised
image that will not be used.
This method is based on the construction of pyramids from the sample and the random noise initialized image. The synthesis begins by the lowest level as previously, but afterwards, the levels are synthetsized from the lower to the higher using multi-resolution neighborhoods as shown in the figure:
This allows to grab as well the general structure of the texture as the details.
The Tree Structured Vector Quantization consider the input neighborhoods as vectors in a multi-dimensional space in order to substitute them by a codebook of few vectors. The objective is to find the nearest neighborhood from the current neighborhood the most rapidly as possible.
With that method, the time is reduced by more than one order of magnitude.
See a demonstration of the tree construction in 2D.
See the results of this method