OpenCV 4.13.0
開源電腦視覺 (Open Source Computer Vision)
載入中...
搜尋中...
無符合項
影像拼接

主題

 特徵尋找與影像配對
 
 旋轉估計
 
 自動校準
 
 影像變形
 
 縫合線估計
 
 曝光補償
 
 影像融合
 

詳細描述

此圖說明了 Stitcher 類別中所實作的拼接模組流程。使用該類別,可以配置或移除某些步驟,即根據特定需求調整拼接流程。流程中的所有建構模組皆可在 detail 命名空間中取得,使用者可以將它們組合並分開使用。

所實作的拼接流程與 [43] 中所提出的流程非常相似。

拼接流程

相機模型

目前拼接流程中實作了 2 種相機模型。

單應性模型適用於製作由相機拍攝的照片全景圖,而基於仿射的模型則可用於拼接掃描檔及由特殊裝置拍攝的物體。請使用 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 權重 )
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 計數,
int size,
std::vector< int > & subset )
Python
cv.detail.selectRandomSubset(count, size, subset) ->

◆ stitchingLogLevel()

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