as you seen,在一些场景下,比如交通监控、道路参数获取、港口码头监控等,需要将相机架设在高处,此时,鉴于复杂的场景环境,基于传统的相机标定方法--即铺设标定板,利用张正友或者Tsai标定方法进行标定,是不现实的。(通俗的说:总不能在马路上摆个标定板,告诉来往的车辆:你等一下,我拍二十张照片你再走,哦,不行,这个角度不行,那个棋盘格角点虚焦了要重拍,你再等一下,估计没标定完,也会被群殴或者被交警抓起来了)。所以,需要开发一套适用于复杂场景的、不需要任何辅助合作目标(比如标定物)的标定方案。
首先,需要准备以下基础知识:
1、科普一下正交消失点的概念。
消失点的概念搞视觉的应该都懂,就是两条平行的直线经透视变换会相交成一点。入门知识,在此不展开。在本方案中,正是用到了三个方向、正交的消失点。
struct VashingPoints
{
cv::Point2d vp1;
cv::Point2d vp2;