OpenCV 4.5.3(日本語機械翻訳)
クラス | 関数
Imgproc_segmentation

クラス

class cv::segmentation::IntelligentScissorsMB
インテリジェントシザース画像分割[【詳解】(英語]

関数

CV_EXPORTS_W void cv::watershed (InputArray image, InputOutputArray markers)
watershedアルゴリズムを用いて,マーカーベースの画像分割を行います.[【詳解】(英語]
CV_EXPORTS_W void cv::grabCut (InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mode=GC_EVAL)
GrabCutアルゴリズムを実行します。[【詳解】(英語]

詳解

関数詳解

grabCut()

CV_EXPORTS_W void cv::grabCut ( InputArray img,
InputOutputArray mask,
Rect rect,
InputOutputArray bgdModel,
InputOutputArray fgdModel,
int iterCount,
int mode = GC_EVAL
)

GrabCutアルゴリズムを実行します。

この関数は,以下のアルゴリズムを実装していますGrabCut 画像分割アルゴリズムを実装しています..

引数
img 入力 8ビット3チャンネル画像.
mask 入力/出力 8ビットシングルチャンネルマスク.このマスクは,mode が次のように設定されている場合に,この関数によって初期化されます.GC_INIT_WITH_RECT. その要素は,以下のいずれかになりますGrabCutClasses.
rect セグメント化されたオブジェクトを含むROI.また,ROIの外側にあるピクセルは,「明らかな背景」としてマークされます.このパラメータは,mode==の場合にのみ利用されます.GC_INIT_WITH_RECT.
bgdModel 背景モデルの一時的な配列です。同じ画像を処理している間は、変更しないでください。
fgdModel foreground modelのための一時的な配列です。同じ画像を処理している間は変更しないでください。
iterCount 結果を返すまでにアルゴリズムが行うべき反復の回数.なお,結果は,mode==GC_INIT_WITH_MASKまたは mode==GC_EVAL を用いた追加の呼び出しで結果を改良できることに注意してください.
mode 操作モードは、以下のいずれかです。GrabCutModes

watershed()

CV_EXPORTS_W void cv::watershed ( InputArray image,
InputOutputArray markers
)

watershedアルゴリズムを用いて,マーカーベースの画像分割を行います.

この関数は,次の文献に記述されている,ノンパラメトリックなマーカーベースのセグメンテーションアルゴリズムである watershed のバリエーションの1つを実装しています.[Meyer92] に記載されています。.

この関数に画像を渡す前に,正(>0)のインデックスを持つ画像マーカーで,希望する領域の大まかな輪郭を描いておく必要があります.つまり,すべての領域は,ピクセル値 1, 2, 3 などを持つ1つ以上の連結成分として表現されます.このようなマーカは,次のようにしてバイナリマスクから取り出すことができますfindContoursおよびdrawContours(を使って,バイナリマスクからマーカーを取り出すことができます(デモ「watershed.cpp」参照).マーカーは,将来の画像領域の「種」となります.マーカー内の他のすべてのピクセルは,アウトライン化された領域との関係がわからず,アルゴリズムによって定義されるべきものなので,0に設定されるべきです.関数の出力では,マーカ内の各ピクセルに「種」となる成分の値が設定されるか,領域間の境界では-1が設定されます.

覚え書き
隣り合う2つの連結成分は,必ずしも流域の境界(-1のピクセル)で区切られているわけではなく,例えば,関数に渡される最初のマーカー画像では,お互いに触れ合っていても構いません.
引数
image 入力 8ビット3チャンネル画像.
markers 入出力 マーカーの32ビットシングルチャンネル画像(マップ).これは,画像と同じサイズでなければいけません.
参照
findContours