algorithm

generalizations

references

examples

Matlab code

unsolved problems

Home Page

Bela Julesz is well-known for his many contributions to understanding visual perception. In 1962, he conjectured that "effortless" visual processing cannot discriminate textures which have the same power spectrum, or, equivalently, identical second-order correlations. Such textures are known as "isodipole" textures. More generally, textures whose statistics are identical up to order N-1, but not order N, are known as N-th order textures.

This conjecture turned out to be false, but established the idea that texture discrimination experiments are a useful probe of the computational processes underlying early vision. One reason for this is that natural scenes are distinguished from Gaussian noise fields by virtue of their high-order correlations, and isodipole textures isolate individual high-order correlations in as pure a manner as possible.

To implement this program, one must be able to generate a diverse set of isodipole textures. This page presents a family of such algorithms to construct isodipole textures of order N. The isodipole textures generated by these algorithms are also maximum-entropy textures, subject to the constraints of the recursion rule used to build the texture. Download a VSS 2005 poster on this.

Formally, a "texture" is a statistical ensemble of images, not an individual image. Statements about the statistics of the texture relate to the complete ensemble, not to individual images. To be rigorous, experiments based on isodipole textures must therefore explore a number of examples of each texture, to be sure that findings are not due to the idiosyncracies of a particular example. This issue is discussed more fully elsewhere.

top introduction algorithm generalizations references

A texture example consists of an assignment of
pixel values 0 or 1 to a lattice a_{i,j} of points, and a rendering
of these pixel values as an image (typically 0 as black, 1 as white).
Here, i represents the row and j represents the column of the pixel
in the lattice.

A set of "integer recursion parameters" (p_{k},q_{k})
(k = 1, 2, ..., N-1) is chosen.
The values p_{k} must be non-negative (say, in the range 0 to P,
P arbitrary).
For values of k for which p_{k}=0, then
q_{k} must be positive (say, in the range 1 to Q, Q arbitrary).
This is to ensure that the recursion rule
(below) can be implemented.
Even within these limits,
the recursion parameters (p_{k},q_{k})
cannot be chosen arbitrarily; certain choices do not lead to
Nth-order textures because they imply correlations of lower order.
See E. N. Gilbert's work.

The texture sample is initiated by assigning the pixels
a_{i,j} (0 <= i < P or 0 <=j < Q) to values 0 or 1, randomly
and with equal probability. For all other values of i and j,
the value of a_{i,j}
is determined by the
*recursion rule*

a_{i,j} =
a_{i-p1,j-q1} +
a_{i-p2,j-q2} + ... +
a_{i-pN-1,j-qN-1},

where addition is interpreted mod 2.
The restrictions on the
recursion parameters (p_{k},q_{k}) ensure that this
recursion can be carried out at each step.

Recursion parameters for some sample textures:

even texture: N=4,
(p_{1},q_{1})=(0,1),
(p_{2},q_{2})=(1,0),
(p_{3},q_{3})=(1,1).

odd texture: N=3,
(p_{1},q_{1})=(0,1),
(p_{2},q_{2})=(1,0).

cross texture: N=4,
(p_{1},q_{1})=(1,1),
(p_{2},q_{2})=(1,-1),
(p_{3},q_{3})=(2,0).

tee texture: N=4,
(p_{1},q_{1})=(1,1),
(p_{2},q_{2})=(1,0),
(p_{3},q_{3})=(1,-1).

top introduction algorithm generalizations references

- Sporadic decorrelation:
after the texture is completed,
a fraction f
_{spor}of the a_{i,j}'s can be flipped to 1-a_{i,j}. Set f_{spor}=1 to convert the dark-triangle texture to the bright-triangle texture, and set it to intermediate values to make other examples. - Propagated decorrelation:
each time the recursion rule
is applied, a fraction f
_{prop}of the a_{i,j}'s can be flipped to 1-a_{i,j}. Set f_{prop}=1 to make the odd texture, and set it to intermediate values to make other examples. - Textures may be XORed with one another, and with randomly superimposed profiles of arbitrary shape. This is a further generalization of sporadic and propagated decorrelation.
- The "pixels" represented by a
_{i,j}=0 or 1 need not be rendered just as black or white, but could be arbitrary colors, or line elements at different orientations, or windows onto other textures. - Textures may be constructed on other lattices (e.g., hexagonal).
- The values assigned to the pixels a
_{i,j}need not be binary. For example, they could be drawn from the set {0, 1, ..., N-1}, with addition interpreted mod N. More generally, they could be drawn from any group, not necessarily abelian. The summation in the recursion rule is interpreted accordingly. - The operation need not be addition. But there are constraints, in order to guarantee ergodicity. Download a VSS 2005 poster about this.
- The lattice of "pixels" may be created in 3 (or more) dimensions, and a texture may be produced from a 2-d slice.

Julesz, B., Gilbert, E.N., Shepp, L.A., & Frisch, H.L. (1973)
Inability of humans to discriminate between
visual textures that agree in second-order statistics -- revisited.
Perception 2, 391-405 (1973).

Caelli, T., Julesz, B., & Gilbert E.N. (1978) On perceptual analyzers underlying visual texture discrimination. Part II. Biological Cybernetics 29, 201-214.

Julesz, B., Gilbert, E., and Victor, J.D. (1978) Visual discrimination of textures with identical third-order statistics. Biological Cybernetics 31, 137-140.

Victor, J.D. and Brodie, S. (1978) Discriminable textures with identical Buffon needle statistics. Biological Cybernetics 31, 231-234.

Maddess, T. & Nagai Y. (2001) Discriminating isotrigon textures. Vision Res. 41, 3837-3860.

Maddess, T., Davey, M. & Yang, E. (1999) Discrimination of complex textures by bees. J. Comp. Physiol. A, 184, 107-177.

Other references from our lab related to visual texture and form processing

Swedish translation created by Anna Chekovsky

Bulgarian translation of this page created by Stoil Dragomirov

Indonesian translation of this page created by Jordan Silaen at ChameleonJohn

top introduction algorithm generalizations