# evaluate image disorder from FFT?

I have to find some estimates of the disorder in a hexagonal lattice, that is in microscopic images like this (disorderedhex.png): [

I wrote this to simulate these kind of images:

    dh = Import["disorderedhex.png"];
{w2, w1} = ImageDimensions[dh];
Manipulate[
Module[{basis, rx = 16, hpoints, hnpoints,dskhnp, fch1},
basis = {{1, 0}, {0.5, Sqrt[3]/2}};
hpoints = Tuples[Range[0, rx], 2].basis;
hpoints = Select[hpoints, rx/2.2 < #[[1]] < rx &];
hnpoints =
Map[{#[[1]] + r (-0.5 + RandomReal[]), #[[2]] +
r (-0.5 + RandomReal[])} &, hpoints];
dskhnp = ImageResize[Image[
Graphics[
Map[Disk[{#[[1]], #[[2]]}, {0.26, 0.26 w1/w2}] &,
hnpoints]]], {w2, w1}];
fch1 = RotateRight[
Abs[Fourier[
ImageData[dskhnp, Interleaving -> False][[2]]]], {w1/2,
w2/2}]\[TensorProduct]{1.0, 0.3, 0.1} /. {x_, y_, z_} -> x;
GraphicsGrid[{{dskhnp, Image[fch1],
ListPlot[fch1[[i]], Joined -> True, Frame -> True;
PlotRange -> {Automatic, {0, 5}}]}}]
], {r, 0, 1, 0.1}, {{i, Round[w1/2]}, 1, w1, 1}
]


with it you get a more-or-less disordered hex lattice of disks, depending on a disorder parameter (r).

I'd like to find a way to evaluate a similar disorder parameter for my real-life images.

To start with, I had a look at the 2dFFT: the two plots are the 2dFFT, and a horizontal section of it.

I can visually see the disorder effect on the FFT, but I cannot imagine a way to estract a measure of it from the FFT

• I will venture a guess. Look for large frequency spikes in the middle (after the RotateRight) or in the upper left corner if you do not do the rotating. – Daniel Lichtblau Aug 26 '16 at 16:55
• My first would have been to use Auto correlation for this purpose. – Eisbär Aug 29 '16 at 10:49