一种高维涡旋光束拓扑荷值的检测方法与流程

文档序号:16475697发布日期:2019-01-02 23:34阅读:291来源:国知局
一种高维涡旋光束拓扑荷值的检测方法与流程

本发明涉及图像处理领域,具体涉及一种高维涡旋光束拓扑荷值的检测方法。



背景技术:

涡旋光束表达式中含有exp(ilθ)项,其中l称为拓扑荷数。高维涡旋光束可能会在电磁散射显著增强中起着重要角色因为电子涡旋携带的磁矩和轨道角动量成正比。目前有很多测量涡旋光束拓扑荷值的方法,例如论文“measuringthetopologicalchargeofanopticalvortexbyusingatiltedconvexlens”【phys.lett.a.377(15),1154-1156(2013)】倾斜透镜形成亮暗条纹测量拓扑荷,但是对于几十个拓扑荷值的高维涡旋光,以人眼观察会带来不便,不能达到很高的速度要求。“涡旋光束拓扑荷数测量研究”【电子科技大学,2015】采用了基于环带傅里叶变换法的机器识别方法测量拓扑荷数,但是利用环带傅里叶变换测量涡旋光束拓扑荷数原理及装置本身相较于倾斜透镜法测量拓扑荷数具有复杂性,而且待测图像需要二值化处理,阈值选定问题和寻找图像圆环中心过程较为繁琐;

分析可知,现有的文献缺少针对高维涡旋光束拓扑荷数的快速检测方法,这是高维涡旋拓扑荷数测量亟待解决的问题。



技术实现要素:

本发明的目的是解决人眼检测高维涡旋光束拓扑荷值不便的问题,提供一种基于图像处理倾斜透镜后的涡旋光束光斑的算法,实现对高维涡旋光束拓扑荷值的测量,具有简单、快速、准确的优点。

本发明所采用的技术方案如下:

分别找到待测图像左右两半部分光强最大值点,并将这两点做连线。

遍历直线上所有像素点的光强。

寻找峰值,数出峰值的个数加一就是要测量的涡旋光束的拓扑荷数。

具体地,所述分别找到待测图像左右两半部分光强最大值点,并将这两点做连线包括:

待测图像由倾斜9°的焦距为30cm的平凸透镜得到并且光束分析仪距透镜距离为f*zc/(zc-f);

其中,f为平凸透镜焦距,zc为激光从腔到平凸透镜所走过的光程。

对待测图像进行灰度处理,得到图像尺寸为[m,n]。

其中,m为图像纵向高度上的像素值,n为图像横向宽度上的像素值。

将待测图像按列分为左[:,1:n/2](即第1列到第n/2列的所有行元素矩阵)、右[:,n/2+1:n](即第n/2+1列到第n列所有行元素矩阵)两半部分。

在待测图像区域[:,1:n/2]内寻找最大值点坐标(x1,y1),在待测图像区域[:,n/2+1:n]内寻找最大值点坐标(x2,y2),对(x1,y1)和(x2,y2)两个点做一条直线,求出直线参数k=(y2-y1)/(x2-x1),b=y1-k*x1。

其中,k为所求直线斜率,b为所求直线在y轴上的截距。

具体地,所述遍历直线上所有像素点的光强包括:

若起始行x1序数大于终止行序数x2,将待测图像矩阵转置,

x1为起始行,对应的起始列为round(k*x1+b);x2为终止行,对应的终止列为round(k*x2+b)。

其中,round(x)函数表示返回x四舍五入后的整数值。

具体地,所述寻找峰值,数出峰的个数加一就是要测量的涡旋光束的拓扑荷数包括:

循环体从起始行x1的下一行开始,到终止行x2上一行结束,如果某一像素点的光强值比其左右两像素点光强值大,即认为此点为峰值点。

循环体从起始行x1的下一行开始,到终止行x2上一行结束,如果某一像素点的光强值比其左右两像素点光强值小,即认为此点为谷值点;

若谷值数比峰值数多一,则拓扑荷数检测无误。

本发明的有益效果:

通过利用本发明的方法具有快速分辨高维涡旋光束拓扑荷数的优点,避免了人工计数的不准确性,由于人眼对不同灰度值的分辨程度非常小,相对于人眼观测而言,采用本发明的算法,可以显著提高准确率,提升处理速度,并且可以做成模块嵌套在光束分析仪中。

附图说明

图1为本发明基于倾斜透镜法测量拓扑荷值为50的涡旋光束光斑图像。

图2为本发明检测方法的流程示意图。

具体实施方式

下面结合附图对本发明做进一步说明:以下实施例在本发明技术方案为前提下进行实施,给出了详细的实施方式和过程,但本发明的保护范围不限于下述的实施例。

如图2所示,本实施例包括:1)分别找到待测图像左右两半部分光强最大值点,并将这两点做连线;2)遍历直线上所有像素点的光强;3)寻找峰值,数出峰值的个数加一就是要测量的涡旋光束的拓扑荷数。

下面对各步骤进行详细阐述:

1)分别找到待测图像左右两半部分光强最大值点,并将两点(待即测图像左半区域光强最大值点和右半区域光强最大值点)做连线,具体方法如下:

101)待测图像由倾斜9°的焦距为30cm的平凸透镜得到并且光束分析仪距透镜距离为f*zc/(zc-f);

其中,f为平凸透镜焦距,zc为激光从腔到平凸透镜所走过的光程。

102)对待测图像进行灰度处理,得到图像尺寸为[m,n]。

其中,m为图像纵向高度上的像素值,n为图像横向宽度上的像素值。

对待测真彩色rgb图像进行灰度处理时,采用加权平均算法,0.2989r+0.5870g+0.1140b;

其中r、g、b分别为红绿蓝三种颜色对应的分量。

如图1所示,待测图像尺寸m为500个像素值,n为500个像素值。

103)将图1按列分为左[:,1:n/2](即第1列到第n/2列的所有行元素矩阵)、右[:,n/2+1:n](即第n/2+1列到第n列所有行元素矩阵)两半部分。

104)在待测图像区域[:,1:n/2]内寻找最大值点坐标(x1,y1),在待测图像区域[:,n/2+1:n]内寻找最大值点坐标(x2,y2),对(x1,y1)和(x2,y2)两个点做一条直线,求出直线参数,斜率k=(y2-y1)/(x2-x1),b=y1-k*x1。

其中,k为所求直线斜率,b为所求直线在y轴上的截距。

使用max(max(picture(:,1:n/2)))得到待测图像左半部分[:,1:n/2]内最大光强值,同理max(max(picture(:,n/2+1:n)))得到待测图像右半部分[:,n/2+1:n]内最大光强值,再对得到的两个最大值点使用find()函数定位找到所处坐标(x1,y1)和(x2,y2)。

其中picture为待测图像进行灰度变换后的变量名称,max(picture(:,1:n/2))表示分别返回第1列到第n/2列每一列的最大值,返回矩阵长度为n/2;max(max(picture(:,n/2+1:n)))表示返回第1列到第n/2列所有列中元素最大的一个,返回矩阵长度为1。

2)遍历直线上所有像素点的光强,具体方法如下:

201)若起始行x1序数大于终止行序数x2,将待测图像矩阵转置。

由于光斑会有正向和负向两种倾斜形式,代表所测量涡旋光束拓扑荷的正负;但循环体结构要求x1<x2,若x1>x2,使用rot90(picture)函数实现将灰度变换后的待测图像转置90°。

202)x1为起始行,对应的起始列为round(k*x1+b);x2为终止行,对应的终止列为round(k*x2+b)。

其中,round(x)函数表示返回x四舍五入后的整数值。

由于k*x1+b的下标索引必须为整数,使用ceil(k*x1+b)、floor(k*x1+b)和round(k*x1+b)均可实现下标索引为整数,本算法采用round(k*x1+b)。

其中,ceil(x)返回大于x但小于x+1的整数值,floor(x)返回小于x但大于x-1的整数值。

将所求直线上所有像素点的光强值组成的矩阵赋予test[]。

test[]为(x2-x1)列1行的空矩阵。

3)寻找峰值,数出峰值的个数加一就是要测量的涡旋光束的拓扑荷数。

301)循环体从起始行x1的下一行开始,到终止行x2上一行结束,如果某一像素点的光强值比其左右两像素点光强值大,即认为此点为峰值点;

302)循环体从起始行x1的下一行开始,到终止行x2上一行结束,如果某一像素点的光强值比其左右两像素点光强值小,即认为此点为谷值点;

303)若谷值数比峰值数多一,则拓扑荷数检测无误。

设定峰值个数cc初始值为0,当检测到峰值点时,cc值增加1,直到循环结束。结束后的cc值增加一便是待测图像的拓扑荷数,测得图1涡旋光束拓扑荷为50,从而实现了对高维涡旋光束拓扑荷数的测量。

该算法基于的原理是:对于倾斜透镜后得到的涡旋光束图像,会分裂为明暗相间的条纹,并且两端明纹的强度最大,中间稍暗,光斑具有类似于hermite(m)(即厄米)多项式的分布特点,m代表多项式有m个零点。这样光斑必定具有m+1个亮斑,m条暗线。针对这一特点,找到光强最大的两个点做连线必定经过每一处亮斑。数出亮斑个数即可。极大的减少了时间,提高准确性。

所述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1