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

I wrote this to simulate these kind of images:

    dh = Import["disorderedhex.png"];
    {w2, w1} = ImageDimensions[dh];          
     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[
          Map[Disk[{#[[1]], #[[2]]}, {0.26, 0.26 w1/w2}] &, 
           hnpoints]]], {w2, w1}];
      fch1 = RotateRight[
            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

  • $\begingroup$ 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. $\endgroup$ – Daniel Lichtblau Aug 26 '16 at 16:55
  • $\begingroup$ My first would have been to use Auto correlation for this purpose. $\endgroup$ – Eisbär Aug 29 '16 at 10:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.