双目测距系列(一):标定工具的开发

描述

转载自:双目测距系列(一)标定工具的开发
作者:ltshan139

前言

双目摄像头标定是测距及其三维建模非常重要的步骤,因为标定出来的内外参数将会用来对原始图像进行反畸变校正,而反畸变的效果对立体匹配精度有着非常大的影响。此外,最终在求距离时(其公式为l=B*f/d),这里面参数都和标定息息相关。

标定工具

目前标定方法的理论基础都为张正友标定法,其大体思想是能找到一个比较好的初始值来进行一个最小二乘法迭代,从而获得最优化标定参数。
具体实现起来比较简单,因为opencv或matlab都已经提供了API支持,关键是先针对实验图片、标定板参数(比如宽高分别有几个角点,每个棋盘格的物理尺寸为多少mm等)确定好即可。
为了更方便的完成标定功能,最好是开发一个带GUI的标定工具,这样效率更高,因为可以灵活指定图片所在目录等。这里面需要注意的一个操作是,要将opencv的窗口映射到MFC IDC_STATIC_CV(PICTURE CONTROL)控件上。
相关代码可以参考下面:

cv::namedWindow("view", WINDOW_NORMAL);
HWND hWnd = (HWND)cvGetWindowHandle("view"); 
HWND hParent = ::GetParent(hWnd); 
::SetParent(hWnd, GetDlgItem(IDC_STATIC_CV)->m_hWnd); 
::ShowWindow(hParent, SW_HIDE);

这样后面调用imshow("view", xxx) 就可以将图片显示到MFC对话框控件上,非常方便。
GUI工具如下所示。param里面参数输入好后,点击“标定”即可自动完成全部单目内外参数以及双目姿态参数的标定,并将标定过程中的信息以及结果都打印出来。



推荐阅读



更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分