我正在使用安装的工业CCD相机,我没有关于其参数的信息。当通过WinUSB以编程方式拍摄图像时,接收到图1中的结果。你会注意到,线条之间的间隙在图像中差别很大。在实际图像中并非如此。
我有一种确定线条位置的技术,并且有一个像素坐标列表,用于在非扭曲图像中线条必须出现的位置。
所以我有
我需要做什么
然而,我非常依赖于遵循这种方法的现有技术。我知道互联网上存在许多利用镜头参数或强度参数的算法,但这些技术在我的场景中并不适合。参数不为人所知,用眼睛调整强度值是不够准确的。
关于技术的任何指示都会有很大的帮助;因为我目前处于亏损状态。
答案 0 :(得分:3)
说明:假设你正在处理一个普通的球形透镜,我试用的第一个模型是一个双参数径向变形的形式:
X = f * |x - c|
Y = k1 * X^2 + k2 * X^4
y = c + Y / f
,其中
所以你的未知数是cu,cv,f,k1和k2。它开始看起来像是相机校准问题,不是吗?
除非你真的不需要估计一个真实的"焦距f,因为(我假设)你对3D空间中的光线计算不感兴趣。因此,您可以通过将f指定为使数据点分布的直径等于2的值来简化问题,以便所有居中缩放的点X的绝对值的坐标不大于1.0。这有两个方面:它改善了问题的数值条件,并将未知数减少到4。
您通常可以通过将图像的中心用于c来初始化估算,并将k1和k2的值设置为零,将数据插入您喜欢的最小二乘优化器,运行,获取未知数的解,并验证它是有道理的(在额外的独立图像上)。冲洗并重复,直至获得满意的效果。
请注意,您可以使用多个图像来丰富用于估算的数据集,当然,假设镜头参数是恒定的。