用ccd拍出的光斑分布(laser+led):
每一次实验中,都要调整光斑的位置,这将导致光斑中心不一样。
在处理数据时,往往要选择一块区域进行分析。如果坐标范围选择不当,可能会导致很大误差。因此需要寻找光斑中心。
figure = imread('地址');
imshow(figure);
%mesh(figure) %生成网格,立体图
view([0 0 1]) %看xy平面图
%ginput(2) 设置范围并返回坐标值
roi = figure(1:1088,1:2048); %将像素点读取成矩阵
arr = max(roi,[],1); %roi,[],2提出同一行不同列的最大值,roi,[],1提出同一列不同行的最大值
x = 1:length(arr); %创建x坐标
plot(arr) %画截面上的光强分布
运行结果:
x轴:
y轴:
截面上光强分布应符合高斯分布,用matlab里的curve fitting做傻瓜式拟合,注意设置x、y轴,用一阶高斯函数拟合:
此时matlab给出函数的一系列拟合系数。再用一段代码确定拟合函数的极大值:
clc
clear
syms x y
y = 279.1*exp(-((x-1074)/1077)^2);
diff(y)
solve(ans)
运行结果:
所以光强最大值找到了,在x=1074的位置处。
现在寻找y轴上的光强最大值,由上图看出,y轴上光强最大值均为255,可以看成平均分布,故选取最大值近似位于y轴中心。
版权声明:本文为weixin_52322485原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。