OpenCV  4.10.0
开源计算机视觉
正在加载...
正在搜索...
无匹配项
模块 | | 函数
图像拼接

模块

 特征查找和图像匹配
 
 旋转估计
 
 自动校准
 
 图像扭曲
 
 接缝估计
 
 曝光补偿
 
 图像混合器
 

详细描述

此图说明了在 Stitcher 类中实现的拼接模块流水线。使用该类可以配置/删除某些步骤,例如根据特定需要调整拼接流水线。流水线中的所有构建块都可以在 detail 命名空间中使用,可以单独组合和使用它们。

实现的拼接流水线与 [41] 中提出的流水线非常相似。

拼接流水线

相机模型

目前在拼接流水线中实现了两种相机模型。

单应性模型对于创建由相机拍摄的照片全景图很有用,而基于仿射的模型可用于拼接由专用设备拍摄的扫描和物体。使用 cv::Stitcher::create 获取针对其中一个模型的预配置流水线。

注意
某些 cv::Stitcher 的详细设置可能没有意义。特别是,不应该混合实现仿射模型的类和实现单应性模型的类,因为它们使用不同的变换。

struct  cv::detail::CameraParams
 描述相机参数。 更多...
 
class  cv::detail::DisjointSets
 
class  cv::detail::Graph
 
struct  cv::detail::GraphEdge
 
class  cv::Stitcher
 高级图像拼接器。 更多...
 
class  cv::detail::Timelapser
 
class  cv::detail::TimelapserCrop
 

函数

 cv::detail::GraphEdge::GraphEdge (int from, int to, float weight)
 
Ptr< Stitchercv::createStitcher (bool try_use_gpu=false)
 
Ptr< Stitchercv::createStitcherScans (bool try_use_gpu=false)
 
bool cv::detail::overlapRoi (Point tl1, Point tl2, Size sz1, Size sz2, Rect &roi)
 
Rect cv::detail::resultRoi (const std::vector< Point > &corners, const std::vector< Size > &sizes)
 
Rect cv::detail::resultRoi (const std::vector< Point > &corners, const std::vector< UMat > &images)
 
Rect cv::detail::resultRoiIntersection (const std::vector< Point > &corners, const std::vector< Size > &sizes)
 
Point cv::detail::resultTl (const std::vector< Point > &corners)
 
void cv::detail::selectRandomSubset (int count, int size, std::vector< int > &subset)
 
int & cv::detail::stitchingLogLevel ()
 

函数文档

◆ GraphEdge()

cv::detail::GraphEdge::GraphEdge ( int  from,
int  to,
float  weight 
)
inline

◆ createStitcher()

Ptr< Stitcher > cv::createStitcher ( bool  try_use_gpu = false)

◆ createStitcherScans()

Ptr< Stitcher > cv::createStitcherScans ( bool  try_use_gpu = false)

◆ overlapRoi()

bool cv::detail::overlapRoi ( Point  tl1,
Point  tl2,
Size  sz1,
Size  sz2,
Rect roi 
)
Python
cv.detail.overlapRoi(tl1, tl2, sz1, sz2, roi) -> retval

◆ resultRoi() [1/2]

Rect cv::detail::resultRoi ( const std::vector< Point > &  corners,
const std::vector< Size > &  sizes 
)
Python
cv.detail.resultRoi(corners, images) -> retval
cv.detail.resultRoi(corners, sizes) -> retval

◆ resultRoi() [2/2]

Rect cv::detail::resultRoi ( const std::vector< Point > &  corners,
const std::vector< UMat > &  images 
)
Python
cv.detail.resultRoi(corners, images) -> retval
cv.detail.resultRoi(corners, sizes) -> retval

◆ resultRoiIntersection()

Rect cv::detail::resultRoiIntersection ( const std::vector< Point > &  corners,
const std::vector< Size > &  sizes 
)
Python
cv.detail.resultRoiIntersection(corners, sizes) -> retval

◆ resultTl()

Point cv::detail::resultTl ( const std::vector< Point > &  corners)
Python
cv.detail.resultTl(corners) -> retval

◆ selectRandomSubset()

void cv::detail::selectRandomSubset ( int  count,
int  size,
std::vector< int > &  subset 
)
Python
cv.detail.selectRandomSubset(count, size, subset) -> None

◆ stitchingLogLevel()

int & cv::detail::stitchingLogLevel ( )
Python
cv.detail.stitchingLogLevel() -> retval