Image synthesis is the process of first measuring the key statistics which characterize the texture of the TI, and then imposing these statistics on the SI. Below we describe the procedure used to perform the matching of the key statistics used to characterize the TI: the histogram and the autocovariance.
The process of modifying the histogram of an image to best match the histogram of another image is a mature subject with many optimized approaches already in the literature (). Since our code is in , we rely on the canned routine histeq(). Given standardized input and ``target'' images, histeq() works by finding the point transformation which minimizes the error between the CDF's of the target image and of the transformation of a flat histogram.
The autocovariance of a function h(x,y) is the inverse Fourier Transform of its amplitude spectrum:
(1) |
The amplitude spectrum of a 2-D function contains much of its pertinent spatial correlation information, and hence, much of its structure. The goal is to force another function, g(x,y), to possess a similar structure as h(x,y), without directly copying. First write g(x,y) as follows:
(2) |
Our approach is simple; substitute the Fourier Transform of C(x,y) for the amplitude of the Fourier Transform of g(x,y):
(3) |
The amplitude spectrum of a function contains the ``textural'' features of an image (shapes, trends, orientations), while the phase spectrum localizes these features in space. Note that in creating from g(x,y), the phase is left unchanged. If g(x,y) is a random image, it will have the general appearence of h(x,y), with a different (random) phase.