图像投影关系估计与3D场景重建
1. 图像全景拼接
在图像拼接中,之前得到的拼接图虽效果不错,但仍存在缺陷,比如图像对齐不够完美,且由于两幅图像亮度和对比度不同,能明显看到拼接痕迹。不过,OpenCV 中的 cv::Stitcher
模块可解决这些问题,生成高质量全景图。
1.1 拼接原理
该模块核心原理是匹配图像中的特征点并稳健估计单应性矩阵,同时估计相机内外参数以确保更好的对齐,还会补偿曝光差异来融合图像。
1.2 操作步骤
以下是使用 cv::Stitcher
模块进行图像拼接的代码示例:
// Read input images
std::vector<cv::Mat> images;
images.push_back(cv::imread("parliament1.jpg"));
images.push_back(cv::imread("parliament2.jpg"));
cv::Mat panorama; // output panorama
// create the stitcher
cv::Stitcher stitcher = cv::Stitcher::createDefault();
// stitch the images
cv::Stitcher::Status status = stitcher.stitch(images, panorama);
可以调整实例中的众多参数以获得高质量结果。