我尝试使用opencv针孔模型来计算校准参数,然后使图像不失真。
问题是,如下图所示,在未失真的图像中有一个奇怪的圆圈。

opencv - 带有一个怪圈的opencv不失真图像-LMLPHP

代码,原始图像和结果图像为here:

任何意见将不胜感激。

最佳答案

校准是比看起来更困难的任务。我认为主要问题是您仅在图像中心显示目标,因此失真参数发现了这种奇怪的参数优化。有趣的是,您可以优化哪些参数以及使用哪些标志(OpenCV的校准功能可以找到很多参数:fx,fy,cx,cy,k1,k2,p1,p2, k3,k4,k5,k6,s1,s2,s3,s4 ...)。

我建议以下内容:
-尝试在屏幕的所有部分处理更多图像,如果可能的话,请删除图像中压缩力强的图像。
-购买粘合纸,在上面打印目标,然后将其粘贴在一块玻璃上,而不必理会纸板。
-您可以稍微改善校准目标和拐角检测,请查看findChessboardCornersSB的文档。
-也许减少OpenCV估计的参数数量可能有助于规范化。在我的情况下,我设置k3 = k4 = k5 = k6 =0。这是通过为失真系数提供一个带有零的 vector (distCoeffs)并给出标志CALIB_FIX_K3,CALIB_FIX_K4等来实现的。看看是否有其他标志可以应用于您的系统(例如CALIB_FIX_ASPECT_RATIO)。

关于opencv - 带有一个怪圈的opencv不失真图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59538424/

10-11 22:45
查看更多