- 操作系統:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
此圖說明了在Stitcher類中實現的拼接模塊流程。使用該類,可以配置/移除某些步驟,即根據特定需求調整拼接流程。流程中的所有構建塊都可在detail命名空間中獲得,可以單獨組合和使用。
所實現的拼接流程與[41]中提出的非常相似。
相機模型
當前在拼接流程中有兩種相機模型被實現。
- 單應性模型:期望圖像間存在透視變換,實現在 cv::detail::BestOf2NearestMatcher、cv::detail::HomographyBasedEstimator、cv::detail::BundleAdjusterReproj 和 cv::detail::BundleAdjusterRay 中。
- 仿射模型:期望具有6自由度或4自由度的仿射變換,實現在 cv::detail::AffineBestOf2NearestMatcher、cv::detail::AffineBasedEstimator、cv::detail::BundleAdjusterAffine、cv::detail::BundleAdjusterAffinePartial 和 cv::AffineWarper 中。
單應性模型對于創建由相機捕捉的照片全景圖很有用,而基于仿射的模型可以用于拼接由專業設備捕捉的掃描件和物體。使用 cv::Stitcher::create 可以獲得上述模型之一的預配置流程。
注意:
某些 cv::Stitcher 的詳細設置可能沒有意義。特別是你不應該混合使用實現仿射模型的類和實現單應性模型的類,因為它們處理的是不同的變換。