本帖最后由 马铃鼠 于 2015-3-9 22:58 编辑
看了论坛上很多前辈的讨论帖,总感觉大家建立的数学模型都挺复杂,也不是很好理解,就自己瞎折腾了一番。
百度搜索“三星校准”这个关键词,大量的是关于三星手机触屏校准的。。。然后就看了下触屏的“三点校准算法”,居然深受启发。。。
这是百度百科“三点校准算法”的内容:
http://baike.baidu.com/link?url=Kl4I3ShOvEYcstw_O8nIcNlUd6w9Kj1d6aG8P8MfFLaccDjTEslWeZLhWJTCHn4qFSg2fybu1tuuuu6ulU4R7K
触屏校准的原理和方法详见:
http://blog.sina.com.cn/s/blog_5d9051c00100ee6w.html
http://mxpopstar.blog.163.com/blog/static/73764120091149151326/
它是建立在两个平面点之间的差量的校准,校准算法是根据三个(或者多个)校准点来确定两个面之间的“平均差量”,之后的坐标值都根据这个差量进行换算,达到两个平面的“点对应”。
“对应”方程:
XL = AX+BY+C
YL = DX+EY+F
(X,Y)是原坐标值,(XL,YL)是换算之后的,也就是校准之后的值。A、B、C、D、E、F是6个换算参量,是需要一次三点校准算出来的。
算法基于二维几何变换中的平移、旋转和缩放三种变换。通过矩阵运算可以得到一个转换公式,具体详见:http://blog.sina.com.cn/s/blog_5d9051c00100ee6w.html
但这个链接中的公式推导的结果应该是错误的,或许是我算错了。。。
但简化之后,都是
XL = AX+BY+C
YL = DX+EY+F
这组公式。
因为有6个未知量(简化之前只有5个),所以最少需要6个方程,也就是最少需要三个点来进行校准。
这组方程也就是:
XL1 = AX1+BY1+C
XL2 = AX2+BY2+C
XL3 = AX3+BY3+C
YL1 = DX1+EY1+F
YL2 = DX2+EY2+F
YL3 = DX3+EY3+F
这个方程可以用克莱姆法则求解。
结果就是:
K = (X1 - X3) (Y2 - Y3) - (X2 - X3) (Y1 - Y3)
A = (( XL1 - XL3)(Y2 - Y3) - (XL2 - XL3)(Y1 - Y3)) / K
B = (( X1 - X3 )( XL2 - XL3) - (XL1 - XL3)( X2 - X3)) / K
C = (Y1( X3XL2 - X2XL3) + Y2(XlXL3 - X3XL1) + Y3(X2XL1 - X1XL2)) / K
D = ((YL1 - YL3)(Y2 - Y3) - (YL2 - YL3)(Y1 - Y3)) / K
E = ((X1 - X3)(YL2 - YL3) - (YL1 - YL3)(X2 - X3)) / K
F = (Y1 (X3YL2 - X2YL3) + Y2 (X1YL3 - X3YL1) + Y3(X2YL1 - X1YL2)) / K
然后带入方程:
XL = AX+BY+C
YL = DX+EY+F
就可以求解了。
goto中的三星校准,具体算法我也不知道,我只是感觉应该和这个类似,但是赤道坐标系是建立在球面坐标系上的,所以情况要稍微复杂些,用上面的方法之前,需要将球面坐标转化为平面直角坐标,校准之后还要转换回球面坐标(貌似会引入误差?)。仔细想一下,所谓的天球本就是按照其半径“无穷”来建立的,那么朝向北天极,以北天极为原点,建立平面坐标(边界是天赤道圈)也是说得通的,只是转换情况要复杂很多(赤纬的正负重合和区分问题,赤经的象限区分问题等)。。。
有了上面两个理论基础,也就建立起了我所谓的“三星校准”数学模型,但是这个校准模型是必须建立在至少三星的基础上的,而且前提是极轴要大致对准的,赤道仪本身机械误差也不能太大,否则就是没有意义的。
但是成品的赤道仪,除了基本的一星校准,三星校准,还存在两星校准这个东西。。。这个我就很好奇了,按照上面的方法,两颗星星肯定是不够的,那么成品goto的三星校准难道不是按照这个原理的吗?还是说我上面的数学模型本就是有问题的。。。
还望大神前辈们指教。
|
|