本代码具有以下两个主要功能:
一、Matlab读取Zygo干涉仪/轮廓仪.dat文件中的面形数据
通过在Matlab中开发大量的反编译代码,我们成功地在Matlab中提取到Zygo .dat二进制文件中所包含的137个测量参数,包括:相位/面形数据(PhaseData)、干涉图(IntensityData)、干涉图像素标定(pixel_height和pixel_width)、测试波长(wavelength_in)和Zygo公司为后续产品预留的参数等等。本文所用到的只是这137个参数中的相位/面形数据(PhaseData)这一个参数(阉割版),关于.dat二进制文件中完整的137个测量参数的反编译说明可跳转至下面这篇文章:
Matlab读取Zygo干涉仪dat数据文件 光学检测加工(明码需另付费)
https://mp.csdn.net/mp_blog/creation/editor/123453503
废话不多说。首先,我们在Matlab中画出提取到的相位/面形数据(PhaseData)(一个十进制矩阵)的二维轮廓图,并用colormap('jet');上色。下图是MetroPro软件与Matlab软件的面形对比图:
二、Matlab对提取到的面形数据进行37阶Zernike拟合
你是否对Zygo MetroPro软件中的“Zernike polynomial”感兴趣?是否想验证它的正确性?——本代码将实现这个功能。
下图红色方框中的37阶Zernike拟合系数是由MetroPro软件给出的:
通过在Matlab中编写Zernike多项式拟合代码,我们同样可以得到上述面形数据的37阶Zernike拟合系数(如下图下方中间的红框中所示,可以看到与MetroPro数据之间的误差很小)、37阶Zernike拟合系数的柱状图(下图右侧中间所示)和37阶Zernike拟合图(下图右下角所示,可以看到面形形状和PV与MetroPro的差异都很小)。37阶Zernike拟合用时仅0.346529秒,跟MetroPro的计算速度差不多:
图3可能看不清楚,我放1张局部图:
总之,本程序包中共包含以下4个文件。其中,ZernikeFitZygodat_main为主程序,MyData.dat为本文中所用到的Zygo二进制数据文件(供测试使用),DecodeZygodat_mini.p和ZernikeFitZygodat.p文件需联系购买(.p格式是Matlab暗码文件,不能看到里面的代码,但不影响调用)。如需DecodeZygodat_mini.p和ZernikeFitZygodat.p的明码文件(.m),请联系另外购买,但费用比暗码文件高很多。
下载地址:Zygo.dat文件转Matlab代码 Zygo干涉仪/轮廓仪数据 光学检测加工必备
另:如需DecodeZygodat.p暗码文件里的代码,请移步至某宝,额外付费购买旗舰版:DecodeZygodat.m明码文件
(本文为CSDN“光学码农”原创,转载须注明本文网址,违者必究!)