Patch size is an important parameter to extract local image motifs, compute rotatioanl and reflectional symmetry maps.
%matplotlib qt
import numpy as np
import matplotlib.pyplot as plt
#from mtflearn import ZPs
from mtflearn.features import autocorrelation, radial_profile, get_characteristic_length, get_characteristic_length_fft
from mtflearn.utils import normalize_image
from skimage.transform import resize
filename = 'data\\monolayer_MoSe2_80K.npy'
img = np.load(filename)[0:800, 0:800]
img = resize(img, (512, 512))
img = normalize_image(img, 0, 1)
Given an image $I$, we follow these steps to estimate the characteristic length from the Fourier space:
Compute the Power Spectrum:
Radial Averaging:
Baseline Correction:
Peak Detection:
Conversion to Real Space:
This method allows us to estimate the lattice constant by analyzing the frequency domain representation of the image and extracting the most prominent spatial frequency, which is then translated into a characteristic length in real space.
s = get_characteristic_length_fft(img)
a1 = 2/np.sqrt(3) * s
print('Lattice constant is {} pixels.'.format(a1))
Given an image $I$, we follow these steps to estimate the characteristic length from the radial distribution function:
Compute the Autocorrelation:
Radial Averaging:
Peak Detection:
This method enables us to estimate the lattice constant by analyzing the spatial correlations within the image, identifying the most prominent distance over which the image exhibits periodicity.
a2 = get_characteristic_length(img)
print('Lattice constant is {} pixels.'.format(a2))