转载自:双目测距系列(一)标定工具的开发
作者: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里面参数输入好后,点击“标定”即可自动完成全部单目内外参数以及双目姿态参数的标定,并将标定过程中的信息以及结果都打印出来。
推荐阅读
- 《SSD和MobilenetSSD模型的训练,量化以及在海思芯片上的部署》视频课程的介绍
- 《华为海思35xx开发板的SDK环境搭建》视频课程的介绍
- 《基于海思35xx nnie引擎进行经典目标检测算法模型推理》视频课程介绍
- 关于《基于海思NNIE引擎实现sensor视频识别应用》的视频课程介绍
更多海思AI芯片方案学习笔记欢迎关注海思AI芯片方案学习。