假设我有一个 STM 图像的扫描(非常像你在这里看到的东西)。假设我有一个简单的方形格子,格子参数为 a。
我想做的是在数字上找到以像素为单位测量的晶格参数,假设校准是在其他地方完成的。
我的第一个想法是创建一个具有点阵常数 a 的点网格的函数,网格开始的一些偏移量以及点阵旋转的一些角度。然后我将每个网格点的 STM 图像的值相加并返回。然后我会使用一些优化工具箱(MATLAB、Python、...)来找到使这个总和最大化的参数。
不幸的是,我在这样做时遇到了问题。例如,网格点是根据角度、晶格常数和偏移量计算得出的,然后四舍五入为整数值,这样我就可以实际处理我的 2D 图像的形式
图像数据[x][y]
但是大多数优化例程将继续仅非常轻微地改变参数,因此圆角坐标不会改变。然后程序假设它已经找到了一个局部最小值/最大值,因为如果参数只是轻微改变,函数值不会改变。
这种方法的稳定性还有其他问题,所以我想知道是否有更复杂的方法以自动化方式执行此操作。我总是可以获取图像数据的 FT 并手动读取晶格常数,但我仍然想在我的图像数据上放置一个最佳网格覆盖,因此我必须优化角度和偏移。