この図は、Stitcher クラスで実装されているスティッチングモジュールのパイプラインを示している。このクラスを使うことで、いくつかのステップを設定/削除すること、すなわち特定の要件に応じてスティッチングパイプラインを調整することが可能である。パイプラインのすべての構成要素はdetail名前空間で利用可能であり、それらを組み合わせて個別に使用することもできる。
実装されているスティッチングパイプラインは、[43] で提案されているものと非常によく似ている。
stitching pipeline
カメラモデル
現在、スティッチングパイプラインには2つのカメラモデルが実装されている。
ホモグラフィモデルはカメラで撮影した写真パノラマの作成に有用であり、一方でアフィンベースのモデルはスキャンや専用デバイスで撮影したオブジェクトのスティッチングに利用できる。これらのモデルのいずれかについて事前設定されたパイプラインを取得するには cv::Stitcher::create を使用する。
- 覚え書き
- cv::Stitcher の特定の詳細設定は意味をなさない場合がある。特に、アフィンモデルを実装するクラスとホモグラフィモデルを実装するクラスは異なる変換を扱うため、混在させてはならない。
|
| | cv::detail::GraphEdge::GraphEdge (int from, int to, float weight) |
| |
| Ptr< Stitcher > | cv::createStitcher (bool try_use_gpu=false) |
| |
| Ptr< Stitcher > | cv::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()
| 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 |