加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

哈特曼传感器(一)

(2014-06-03 19:51:40)

(这两篇是在很久一起拿另一个新浪博客写的,最近整理整理一下)

需要能够输出微透镜下对应的点的偏移量。

闲来无聊,因为最近看过一本Labview相关的书籍,自己亲手尝试着去做了一个。

步骤大致如下:

1. 寻找最大点,即求斜率

2. 尝试求波前

一、求斜率

1. 划分小区域

最简单的方法是将BMP图片划分为n*m的方格,然后将在方格中寻找最值,输出最值位置,即可以求得斜率。但是不巧的是,他偏偏长成这样,挫样,没办法,只能想想办法,最后还是有解决的方法,第一个在上,第二个在下,第三格在上……然后仍旧是找到其最值的位置,即斜率。

前几天我也有在百度文库上看到其他人如何求的,不过比较的麻烦,是先取中心位置的斜率为零,然后在画格子,找到格子中与中心光斑相同的那一部分,算偏移量。我觉得困难的地方就是在于找相同的部分,即使完全一样,也很难找。

今天,客户在数据库中下载了一些文档,是关于如何紧缺求其质心的方法,就是加权求平均,想了想,算了,和我的方法应该差不多,不去考虑复杂的方法了,还是找最值。

因为自己有看过Labview找最值的方法,因此同样知道其不足之处在于最值做事从第一行开始,一行一行往下数,遇到的第一个最值就会输出,如果后面还有相同的最值是不会输出的,因此称为了我一个担心的地方。

http://s16/middle/acad51604c4615c0345bf&690

二、求波前

算然说已经找到了各个点的斜率,同样我可以假设每个平面都是一个倾斜的平面,后者它是有两条正交的直线组成,斜率有波矢相关,但是有连续的连接所有的平面,有似乎存在这矛盾。

于是我想到是否应该给其指定一个规则,然后现将最左边和下边两条变的波前(波前假设为由两条正交直线组成,其纬度为3)线画好,然后画其余的波前,每一个 波前至少与二个面比邻,当其在一个方向上与上一个连续连接后,另一个方向不一定也用连续连接,因此可以指定一个规则,比如说一个零两个方向都不能连续的连 接,然后令其两个方向的相差距离为零等等。

http://s12/middle/acad51604c4615dc03fbb&690

但是当时没有想那么多,只是在网上大概的看了看,找到一种Zernike拟合的方法,然后就尝试去做了。大致过程如下,波前可以分解为无数正交的 Zernike项,对波前的某一个最值位置求偏导数,就可以知道其点在x和y方向的斜率,然后就可以得到下式,至于为什么只有取道a6是因为能够得到唯一 解,至于为什么取前六项?而不取任意的6项?这就不得而知了。暂时就这么看下去

http://s8/middle/acad51604c4615e2bdba7&690

求出6*6矩阵的值

http://s5/middle/acad51604c4615e6b0db4&690

http://s11/middle/acad51604c4615ee4e98a&690

http://s1/middle/acad51604c4615f2bc590&690

http://s4/middle/acad51604c4615f6cc4a3&690

http://s11/middle/acad51604c4615fa87aaa&690

http://s3/middle/acad51604c4616034c562&690

http://s13/middle/acad51604c46160e6d56c&690

http://s4/middle/acad51604c46161be06c3&690

我大致的去了几个点,然后带入到方程中,求具体的矩阵大小

http://s8/middle/acad516007a09bd075827&690

http://s13/middle/acad51604c46162e362dc&690

从上式可以很轻易的求导Zernike系数,从而得到拟合的波前如下

http://s13/middle/acad516007a09bd1e2cac&690

总结:

1. 首先泽尔尼克多项式都是以一个点为中心的,万一出现了一个球差,在空间位置上往某个方向上移动了几个像素后,那测到结果还准确吗?

2. 万一某一个高阶项向的系数非常大,却被忽略了,怎么办?

3. 能不能办法跳过拟合直接求出波前?

 

Labview的编程图如下,左边输入的两幅图,一幅作为变准、零斜率的测量结果,完全可一用一个矩阵代替存储下来;另一个为存在斜率的测量结果。左边的 那一大块的功能是将图片划分为小块,然后找最值;右边的那部分是将两幅图片上画上小方格。编程挺难,挺有趣,总是要解决不是问题的问题。

http://s5/middle/acad51604c46163ffab34&690

0

阅读 收藏 喜欢 打印举报/Report
后一篇:静态库
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有