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函数,创建地图。