像差是两个图像(两个波面) 对应点的 光程差
其实就是物理意义上的距离
微透镜阵列形成的 光斑 彼此点要相对应 此z方向是一致的 所以计算像差 只需要计算 x 方向 与 y 方向
w(x,y)/delta x = x方向差值/焦距
w(x,y)/delta y = y方向差值/焦距
从而 反推w(x,y) 计算该点的像差
所有点的像差累加(积分) 就是该波面的波前像差
像差是两个图像(两个波面) 对应点的 光程差
其实就是物理意义上的距离
微透镜阵列形成的 光斑 彼此点要相对应 此z方向是一致的 所以计算像差 只需要计算 x 方向 与 y 方向
w(x,y)/delta x = x方向差值/焦距
w(x,y)/delta y = y方向差值/焦距
从而 反推w(x,y) 计算该点的像差
所有点的像差累加(积分) 就是该波面的波前像差
zernike 输入各对应点 对应的差值 就可以计算出像差
泽尼克多项式是一个正交多项式,分为奇偶两类。
奇多项式:
偶多项式:
其中:
这里fai为方位角,范围[0-2pi];p为径向距离,范围[0,1];n-m大于等于0;
如果n-m=0,则R=0。
根据不同的m和n值,可以得到不同的多项式,用j表示不同的多项式,通常称为Noll序列:
n,m | 0,0 | 1,1 | 1,−1 | 2,0 | 2,−2 |
---|---|---|---|---|---|
j | 1 | 2 | 3 | 4 | 5 |
n,m | 2,2 | 3,−1 | 3,1 | 3,−3 | 3,3 |
j | 6 | 7 | 8 | 9 | 10 |
n,m | 4,0 | 4,2 | 4,−2 | 4,4 | 4,−4 |
j | 11 | 12 | 13 | 14 | 15 |
n,m | 5,1 | 5,−1 | 5,3 | 5,−3 | 5,5 |
j | 16 | 17 | 18 | 19 | 20 |
jtonmtable 对应的就是这个序列
n m
1 0 0
2 1 1
3 1 -1
4 2 0
5 2 -2
6 2 2
7 3 -1
8 3 1
9 3 -3
10 3 3
11 4 0
12 4 2
13 4 -2
14 4 4
15 4 -4
azimtable 对应的就是 cos sin 角度的系数
cos sin
1 0 0
2 1 0
3 0 1
4 0 0
5 0 2
6 2 0
7 0 1
8 1 0
9 0 3
10 3 0
11 0 0
12 2 0
13 0 2
14 4 0
15 0 4
radialtable 对应的包括 根号系数了
Noll序列前15项泽尼克多项式为:
1 | 1 |
2 | 2ρcosθ |
3 | 2ρsinθ |
4 | √3(2ρ2−1) |
5 | √6ρ2sin2θ |
6 | √6ρ2cos2θ |
7 | √3(3ρ3−2ρ)sinθ |
8 | √3(3ρ3−2ρ)cosθ |
9 | √8ρ3sin3θ |
10 | √8ρ3cos3θ |
11 | √5(6ρ4−6ρ2+1) |
12 | √10(4ρ4−3ρ2)cos2θ |
13 | √10(4ρ4−3ρ2)sin2θ |
14 | √10ρ4cos4θ |
15 | √10ρ4sin4θ |
%% 等待
input('按下回车键继续...');
pause(inf)
需要0度数图片做校准图片(已完成)
相片参数 640×480 = 307200
代码参数 640×520 = 332800 (reconstruction 通过上下加20px 实现)
iv0 = shstruct.ord_sqgrid
dv1 = shstruct.ord_centres
dv2 = shstruct.E1
77 = shstruct.nspots
A=imread('calibration.png'); % new 30fps chip
A=imread('calibration.png'); % new 30fps chip
figure("name","图片标题")
imshow(A)
figure()
title('第二个窗口', 'FontSize', 14, 'FontWeight', 'bold', 'Color', 'r');
figure 命令会显示一个窗口
读取图片
matrix = imread("./abc.png")
显示矩阵图片
imshow(matrix)
打开图片后 调用图片工具处理矩阵
imtool(matrix)
RGB转GRAY
gray = rgb2gray(rgb)
图片二值化处理
boolean = img > threhold
图片膨胀与腐蚀 (去掉图片噪音)
pi 表示圆周率
1e-6 表示科学计数法 10的-6次方 代表无穷小 或者0
disp() 控制台输出
abs() 绝对值
sqrt() 开方
syms k ∑
symsum 求和
factorial() 阶乘
exp() e的次方
log() ln
log10() log10
sin() cos() tan() cot()
asin() acos() atan() acot()
if:else 语法
if
elseif
else
end
function
矩阵的+ – * / > < 这些操作 都是针对整个矩阵所有元素的操作
mkdir 创建文件夹
movefile 移动文件
dir 显示文件夹
变量声明
x=起始范围:步长:终止范围
函数声明
y=f(x) f() 具体形式 具体编写
二维函数画图
plot(X,Y)
plot(X,Y,LineSpec)
plot(X1,Y1,…,Xn,Yn)
plot(X1,Y1,LineSpec1,…,Xn,Yn,LineSpecn)
plot(Y)
LineSpec 表示线段形式
“:” 蓝虚线
“r” 红实线 “:r” 红虚线
“b” 蓝实线 “:b” 蓝虚线
“-” 蓝实线
“–” 蓝分段线段