1 | /** |
void init(const cv::Size &origSize, const cv::Size &dstSize)
: 这是一个名为init
的函数,它接受两个参数origSize
和dstSize
,这两个参数是OpenCV库中的cv::Size
类型,用来表示图像的尺寸。m_origPoints.clear();
: 清空存储原始域点坐标的容器m_origPoints
。m_origPoints.push_back(Point2f(0, 214));
: 将(0, 214)
点坐标添加到原始域的点坐标集合中,代表原始图像的左下角。依次类推,将原始域的四个角的点坐标添加到
m_origPoints
中,依次是左下、右下、右上和左上。m_dstPoints.clear();
: 清空存储矫正域点坐标的容器m_dstPoints
。m_dstPoints.push_back(Point2f(100, 400));
: 将(100, 400)
点坐标添加到矫正域的点坐标集合中,代表矫正图像的左下角。依次类推,将矫正域的四个角的点坐标添加到
m_dstPoints
中,依次是左下、右下、右上和左上。m_origSize = origSize;
和m_dstSize = dstSize;
: 将原始图像尺寸和目标图像尺寸保存下来。assert(m_origPoints.size() == 4 && m_dstPoints.size() == 4 && "Orig. points and Dst. points must vectors of 4 points");
: 使用assert
断言来确保原始域和矫正域的点坐标集合都包含四个点。m_H = getPerspectiveTransform(m_origPoints, m_dstPoints);
: 通过原始域和矫正域的点坐标计算透视变换矩阵m_H
。m_H_inv = m_H.inv();
: 求解透视变换矩阵m_H
的逆矩阵,存储在m_H_inv
中。createMaps();
: 调用createMaps
函数,创建地图。