OpenCV 4.5.3(日本語機械翻訳)
列挙型 | 関数 | 変数
Imgproc_misc

列挙型

enum cv::DistanceTypes {
cv::DIST_USER = -1 , cv::DIST_L1 = 1 , cv::DIST_L2 = 2 , cv::DIST_C = 3 ,
cv::DIST_L12 = 4 , cv::DIST_FAIR = 5 , cv::DIST_WELSCH = 6 , cv::DIST_HUBER = 7
}
enum cv::DistanceTransformMasks { cv::DIST_MASK_3 = 3 , cv::DIST_MASK_5 = 5 , DIST_MASK_PRECISE = 0 }
距離変換のマスクサイズ[【詳解】(英語]
enum cv::ThresholdTypes {
cv::THRESH_BINARY = 0 , cv::THRESH_BINARY_INV = 1 , cv::THRESH_TRUNC = 2 , cv::THRESH_TOZERO = 3 ,
cv::THRESH_TOZERO_INV = 4 , THRESH_MASK = 7 , cv::THRESH_OTSU = 8 , cv::THRESH_TRIANGLE = 16
}
enum cv::AdaptiveThresholdTypes { cv::ADAPTIVE_THRESH_MEAN_C = 0 , cv::ADAPTIVE_THRESH_GAUSSIAN_C = 1 }
enum cv::GrabCutClasses { cv::GC_BGD = 0 , cv::GC_FGD = 1 , cv::GC_PR_BGD = 2 , cv::GC_PR_FGD = 3 }
GrabCutアルゴリズムにおけるピクセルのクラス[【詳解】(英語]
enum cv::GrabCutModes { cv::GC_INIT_WITH_RECT = 0 , cv::GC_INIT_WITH_MASK = 1 , cv::GC_EVAL = 2 , cv::GC_EVAL_FREEZE_MODEL = 3 }
GrabCutアルゴリズムのフラグ[【詳解】(英語]
enum cv::DistanceTransformLabelTypes { cv::DIST_LABEL_CCOMP = 0 , cv::DIST_LABEL_PIXEL = 1 }
distanceTransformアルゴリズムフラグ[【詳解】(英語]
enum cv::FloodFillFlags { cv::FLOODFILL_FIXED_RANGE = 1 << 16 , cv::FLOODFILL_MASK_ONLY = 1 << 17 }
フラッドフィル・アルゴリズム・フラグ[【詳解】(英語]

関数

CV_EXPORTS_W void cv::integral (InputArray src, OutputArray sum, int sdepth=-1)
cv::CV_EXPORTS_AS (integral2) void integral(InputArray src
cv::CV_EXPORTS_AS (integral3) void integral(InputArray src
画像の積分値を求めます.[【詳解】(英語]
CV_EXPORTS_W double cv::threshold (InputArray src, OutputArray dst, double thresh, double maxval, int type)
各配列要素に対して,固定レベルの閾値を適用します.[【詳解】(英語]
CV_EXPORTS_W void cv::adaptiveThreshold (InputArray src, OutputArray dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
配列に適応的な閾値を適用します.[【詳解】(英語]
cv::CV_EXPORTS_AS (distanceTransformWithLabels) void distanceTransform(InputArray src
ソース画像の各ピクセルに対して,最も近い 0 ピクセルまでの距離を計算します.[【詳解】(英語]
CV_EXPORTS_W void cv::distanceTransform (InputArray src, OutputArray dst, int distanceType, int maskSize, int dstType=CV_32F)
CV_EXPORTS int cv::floodFill (InputOutputArray image, Point seedPoint, Scalar newVal, CV_OUT Rect *rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4)
CV_EXPORTS_W int cv::floodFill (InputOutputArray image, InputOutputArray mask, Point seedPoint, Scalar newVal, CV_OUT Rect *rect=0, Scalar loDiff=Scalar(), Scalar upDiff=Scalar(), int flags=4)
与えられた色で連結成分を塗りつぶします.[【詳解】(英語]
CV_EXPORTS_W void cv::blendLinear (InputArray src1, InputArray src2, InputArray weights1, InputArray weights2, OutputArray dst)

変数

OutputArray cv::sum
OutputArray OutputArray cv::sqsum
OutputArray OutputArray int cv::sdepth = -1
OutputArray OutputArray int int cv::sqdepth = -1 )
OutputArray OutputArray OutputArray cv::tilted
OutputArray cv::dst
OutputArray OutputArray cv::labels
OutputArray OutputArray int cv::distanceType
OutputArray OutputArray int int cv::maskSize
OutputArray OutputArray int int int cv::labelType = DIST_LABEL_CCOMP )

詳解

列挙型詳解

AdaptiveThresholdTypes

適応型閾値アルゴリズム

参照
adaptiveThreshold
列挙値
適応型しきい値_平均値_c

しきい値$T(x,y)$の平均値となります。$\texttt{blockSize} \times \texttt{blockSize}$の近傍の平均値です。$(x, y)$マイナスC

アダプティブスレッショルド_ガウシアン_c

しきい値$T(x, y)$の加重和(ガウス窓との相互相関)となります。$\texttt{blockSize} \times \texttt{blockSize}$の近傍の平均値です。$(x, y)$マイナスC 指定されたblockSizeに対しては,デフォルトのsigma(標準偏差)が用いられます.参照getGaussianKernel

DistanceTransformLabelTypes

distanceTransformアルゴリズムフラグ

列挙値
dist_label_ccomp

src の 0 の各連結成分(および,その連結成分に最も近い 0 ではないピクセル)に,同じラベルが割り当てられます.

dist_label_pixel

各 0 ピクセル(および,それに最も近い非 0 ピクセル)に,それぞれのラベルが割り当てられます.

DistanceTransformMasks

距離変換のマスクサイズ

列挙値
DIST_MASK_3

マスク=3

DIST_MASK_5

mask=5

DistanceTypes

距離変換とM-推定のための距離の種類

参照
distanceTransform,fitLine
列挙値
DIST_USER

ユーザ定義の距離

DIST_L1

距離 = |x1-x2| + |y1-y2| 。

DIST_L2

単純なユークリッド距離.

DIST_C

距離 = max(|x1-x2|,|y1-y2|)

DIST_L12

L1-L2 メトリック: distance = 2(sqrt(1+x*x/2) - 1)

DIST_FAIR

距離 = c^2(|x|/c-log(1+|x|/c)), c = 1.3998.

DIST_WELSCH

距離 = c^2/2(1-exp(-(x/c)^2)), c = 2.9846

DIST_HUBER

distance = |x|<c ? x^2/2 : c(|x|-c/2), c = 1.345

FloodFillFlags

フラッドフィル・アルゴリズム・フラグ

列挙値
floodfill_fixed_range

設定されている場合,現在のピクセルとシードピクセルの間の差を考慮する.それ以外の場合は、隣接するピクセル間の差を考慮する(つまり、範囲は浮動小数点)。

floodfill_mask_only

このオプションがセットされている場合,この関数は画像を変更せず( newVal は無視されます),上述の flags のビット8-16で指定された値でマスクを埋めるだけです.このオプションは,maskパラメータを持つ関数のバリエーションでのみ意味を持ちます.

GrabCutClasses

GrabCutアルゴリズムにおけるピクセルのクラス

列挙値
GC_BGD

明らかな背景ピクセル

GC_FGD

明らかな前景(オブジェクト)のピクセル

GC_PR_BGD

可能な背景ピクセル

GC_PR_FGD

前景の可能なピクセル

GrabCutModes

GrabCutアルゴリズムのフラグ

列挙値
gc_init_with_rect

この関数は,与えられた矩形を用いて,状態とマスクを初期化します.その後、アルゴリズムの反復処理を iterCount 回実行します。

gc_init_with_mask

この関数は指定されたマスクを使って状態を初期化します。GC_INIT_WITH_RECT と GC_INIT_WITH_MASK は組み合わせることができることに注意してください。そして,ROIの外側のすべてのピクセルは自動的にGC_BGDで初期化されます。

GC_EVAL

値はアルゴリズムがちょうど再開されるべきであることを意味します。

GC_EVAL_FLYZE_MODEL

この値は、アルゴリズムが固定されたモデルでgrabCutアルゴリズム(1回の反復)を実行すべきであることを意味します。

ThresholdTypes

閾値操作のタイプthreshold types

列挙値
THRESH_BINARY

\[\texttt{dst} (x,y) = \fork{\texttt{maxval}}{if \‍(\texttt{src}(x,y) > \texttt{thresh}\‍)}{0}{otherwise}\]

THRESH_BINARY_INV

\[\texttt{dst} (x,y) = \fork{0}{if \‍(\texttt{src}(x,y) > \texttt{thresh}\‍)}{\texttt{maxval}}{otherwise}\]

THRESH_TRUNC

\[\texttt{dst} (x,y) = \fork{\texttt{threshold}}{if \‍(\texttt{src}(x,y) > \texttt{thresh}\‍)}{\texttt{src}(x,y)}{otherwise}\]

THRESH_TOZERO

\[\texttt{dst} (x,y) = \fork{\texttt{src}(x,y)}{if \‍(\texttt{src}(x,y) > \texttt{thresh}\‍)}{0}{otherwise}\]

スレッシュ_トゼロ_インブ

\[\texttt{dst} (x,y) = \fork{0}{if \‍(\texttt{src}(x,y) > \texttt{thresh}\‍)}{\texttt{src}(x,y)}{otherwise}\]

THRESH_OTSU

フラグを立てると、大津アルゴリズムを使って最適な閾値を選択します。

スレッショ_トライアングル

フラグ、最適な閾値を選択するために三角形アルゴリズムを使用します。

関数詳解

adaptiveThreshold()

CV_EXPORTS_W void cv::adaptiveThreshold ( InputArray src,
OutputArray dst,
double maxValue,
int adaptiveMethod,
int thresholdType,
int blockSize,
double C
)

配列に適応的な閾値を適用します.

この関数は,次の式に従ってグレースケール画像を2値画像に変換します.

  • THRESH_BINARY

    \[dst(x,y) = \fork{\texttt{maxValue}}{if \‍(src(x,y) > T(x,y)\‍)}{0}{otherwise}\]

  • THRESH_BINARY_INV

    \[dst(x,y) = \fork{0}{if \‍(src(x,y) > T(x,y)\‍)}{\texttt{maxValue}}{otherwise}\]

    ここで$T(x,y)$は,各ピクセルに対して個別に計算される閾値です( adaptiveMethod パラメータを参照してください).

この関数は,画像をその場で処理することができます.

引数
src 8ビットシングルチャンネルの入力画像.
dst src と同じサイズ,同じタイプの出力画像.
maxValue 条件が満たされたピクセルに割り当てられる0ではない値.
adaptiveMethod 使用する適応型閾値処理アルゴリズム,参照AdaptiveThresholdTypes. という関数を考えます。BORDER_REPLICATE|BORDER_ISOLATEDは,境界線の処理に利用されます.
thresholdType 閾値処理のタイプは,以下のいずれかでなければいけませんTHRESH_BINARYまたはTHRESH_BINARY_INVを参照してください。ThresholdTypes.
blockSize ピクセルに対する閾値を計算するために利用される,ピクセルの近傍領域のサイズ.3, 5, 7,...となります。
C 平均値または加重平均値から減算される定数(詳細は後述)。通常は正の値ですが,ゼロや負の値もあり得ます.
参照
threshold,blur,GaussianBlur

blendLinear()

CV_EXPORTS_W void cv::blendLinear ( InputArray src1,
InputArray src2,
InputArray weights1,
InputArray weights2,
OutputArray dst
)

2つの画像の線形ブレンドを行います.

\[ \texttt{dst}(i,j) = \texttt{weights1}(i,j)*\texttt{src1}(i,j) + \texttt{weights2}(i,j)*\texttt{src2}(i,j) \]

引数
src1 CV_8UC(n) または CV_32FC(n) の型を持ち,n は正の整数です.
src2 src1 と同じ型とサイズを持ちます.
weights1 CV_32FC1 というタイプを持ち, src1 と同じサイズです.
weights2 CV_32FC1 というタイプを持ち, src1 と同じサイズです.
dst src1 と同じサイズとタイプを持っていない場合は,作成されます.

CV_EXPORTS_AS() [1/3]

cv::CV_EXPORTS_AS ( distanceTransformWithLabels )

ソース画像の各ピクセルに対して,最も近い 0 ピクセルまでの距離を計算します.

この関数はcv::distanceTransformは、2値画像の各ピクセルから、最も近いゼロピクセルまでのおおよその、あるいは正確な距離を計算します。ゼロ画像のピクセルでは,当然ながら距離はゼロになります.

maskSize == #DIST_MASK_PRECISE かつ distanceType ==DIST_L2の場合,この関数は以下に記述されたアルゴリズムを実行します[Felzenszwalb04] です.. このアルゴリズムは,TBB ライブラリを用いて並列化されています.

他のケースでは,このアルゴリズム[Borgefors86] を使用しています.が利用されます.つまり,この関数は,あるピクセルに対して,水平,垂直,斜め,騎士の移動という基本的な移動方法からなる,最も近い0ピクセルへの最短経路を求めます(最新の移動方法は$5\times 5$マスクの場合は,最新のものが利用できます).全体の距離は,これらの基本的な距離の合計として計算されます.距離関数は対称でなければならないので、水平方向と垂直方向のシフトはすべて同じコスト(aと表記)でなければならず、対角線方向のシフトはすべて同じコスト(bと表記)でなければなりません。bと表記)、すべてのナイトの動きは同じコスト(と表記)でなければなりません。c). タイプについてはDIST_CおよびDIST_L1のタイプでは、距離は正確に計算されます。DIST_L2(ユークリッド距離)の場合、距離は相対的な誤差でしか計算できません(マスクを使うとより正確な結果が得られます)。$5\times 5$マスクはより正確な結果を与えます)。についてはa,bを満たす。cについては,OpenCVは原著論文で提案された値を使用します.

  • DIST_L1:a = 1, b = 2
  • DIST_L1: DIST_L2:
    • 3 x 3:a=0.955, b=1.3693
    • 5 x 5:a=1, b=1.4, c=2.1969
  • DIST_C:a = 1, b = 1

一般的に,高速で粗い距離推定を行う場合はDIST_L2, a$3\times 3$マスクを使用します.より正確な距離の推定にはDIST_L2, a$5\times 5$マスクまたは精密アルゴリズムを使用します。なお,精密アルゴリズムも近似アルゴリズムも,ピクセル数に対して線形です.

この関数は,各ピクセルの最小距離を計算するだけでなく,直近の連結成分を特定することもできます.$(x, y)$の最小距離を計算するだけでなく,0個のピクセルからなる最も近い連結成分(labelType==DIST_LABEL_CCOMP),あるいは,最も近いゼロピクセル (labelType==DIST_LABEL_PIXEL). その成分/ピクセルのインデックスはlabels(x, y). labelType==の場合DIST_LABEL_CCOMPの場合,この関数は,入力画像中のゼロピクセルの連結成分を自動的に検出し,それらに個別のラベルを付けます.labelType==の場合DIST_LABEL_PIXELの場合,この関数は,入力画像をスキャンし,すべての0ピクセルに個別のラベルを付けます.

このモードでは,複雑さは直線的です.つまり,この関数は,2値画像のボロノイ図を非常に高速に計算する方法を提供します.現在のところ,2番目のモードでは,近似距離変換アルゴリズムしか利用できません.つまり, maskSize=#DIST_MASK_PRECISE はまだサポートされていません.

引数
src 8ビット,シングルチャンネル(2値)の入力画像.
dst 距離が計算された出力画像.src と同じサイズの,8ビットまたは32ビット浮動小数点型,シングルチャンネルの画像です.
labels ラベルの2次元配列(離散的なボロノイ図)を出力します.これは,型が CV_32SC1 で, src と同じサイズです.
distanceType 距離の種類,参照DistanceTypes
maskSize 距離変換マスクのサイズ,参照DistanceTransformMasks. このバリアントでは,#DIST_MASK_PRECISE はサポートされません.距離のタイプがDIST_L1またはDIST_C距離のタイプの場合、パラメータは強制的に3になります。$3\times 3$と同じ結果になります。$5\times 5$と同じ結果になるからです。
labelType 構築するラベル配列のタイプ,参照DistanceTransformLabelTypes.

CV_EXPORTS_AS() [2/3]

cv::CV_EXPORTS_AS ( integral2 )

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

CV_EXPORTS_AS() [3/3]

cv::CV_EXPORTS_AS ( integral3 )

画像の積分値を求めます.

この関数は,以下のように,入力画像に対する1つまたは複数の積分画像を計算します.

\[\texttt{sum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)\]

\[\texttt{sqsum} (X,Y) = \sum _{x<X,y<Y} \texttt{image} (x,y)^2\]

\[\texttt{tilted} (X,Y) = \sum _{y<Y,abs(x-X+1) \leq Y-y-1} \texttt{image} (x,y)\]

これらの積分画像を利用して,例えば,画像中の特定の右上がりあるいは回転した矩形領域の総和,平均,標準偏差を一定時間で計算することができます.

\[\sum _{x_1 \leq x < x_2, \, y_1 \leq y < y_2} \texttt{image} (x,y) = \texttt{sum} (x_2,y_2)- \texttt{sum} (x_1,y_2)- \texttt{sum} (x_2,y_1)+ \texttt{sum} (x_1,y_1)\]

これにより、例えば、可変のウィンドウサイズで高速ブラーリングや高速ブロック相関を行うことができます。マルチチャンネル画像の場合、各チャンネルの総和は独立して蓄積されます。

次の図は,実際の例として,まっすぐな矩形 Rect(3,3,3,2) と傾いた矩形 Rect(5,1,2,3) の積分の計算を示しています.元画像の選択されたピクセルと,積分画像の和と傾いた部分の相対的なピクセルが示されています.

integral calculation example

引数
src 入力画像を$W \times H$8ビット,または浮動小数点(32f または 64f).
sum 積分画像$(W+1)\times (H+1)$32ビット整数または浮動小数点(32fまたは64f).
sqsum 二乗されたピクセル値を表す積分画像,それは$(W+1)\times (H+1)$倍精度浮動小数点(64f)の配列.
tilted 45度回転した画像の積分値,これは$(W+1)\times (H+1)$sumと同じデータ型の配列.
sdepth 積分画像と傾いた積分画像の希望深度は,CV_32S, CV_32F, または CV_64F.
sqdepth ピクセル値を2乗した積分画像の希望深度,CV_32F または CV_64F.

distanceTransform()

CV_EXPORTS_W void cv::distanceTransform ( InputArray src,
OutputArray dst,
int distanceType,
int maskSize,
int dstType = CV_32F
)

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

引数
src 8ビット,シングルチャンネル(2値)の入力画像.
dst 計算された距離を持つ出力画像.src と同じサイズの,8ビットまたは32ビット浮動小数点型,シングルチャンネルの画像です.
distanceType 距離の種類,参照DistanceTypes
maskSize 距離変換マスクのサイズ,参照DistanceTransformMasks. の場合も同様です.DIST_L1またはDIST_C距離のタイプの場合、パラメータは強制的に3になります。$3\times 3$と同じ結果になります。$5\times 5$と同じ結果になるからです。
dstType 出力画像の種類.CV_8U または CV_32F のいずれかです.CV_8U タイプは,この関数の最初のバリアントと distanceType == にのみ利用できます.DIST_L1.

floodFill() [1/2]

CV_EXPORTS_W int cv::floodFill ( InputOutputArray image,
InputOutputArray mask,
Point seedPoint,
Scalar newVal,
CV_OUT Rect * rect = 0,
Scalar loDiff = Scalar(),
Scalar upDiff = Scalar(),
int flags = 4
)

与えられた色で連結成分を塗りつぶします.

この関数はcv::floodFill種子点から始まる連結成分を,指定された色で塗りつぶします.この連結性は,隣接するピクセルの色や明るさの近さによって決まります.のピクセルは$(x,y)$のピクセルは,以下の場合,再描画領域に属しているとみなされます。

  • グレースケール画像で,浮動小数点数の場合

    \[\texttt{src} (x',y')- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} (x',y')+ \texttt{upDiff}\]

  • グレースケール画像で固定範囲の場合

    \[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)- \texttt{loDiff} \leq \texttt{src} (x,y) \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)+ \texttt{upDiff}\]

  • カラー画像でフローティングレンジの場合

    \[\texttt{src} (x',y')_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} (x',y')_r+ \texttt{upDiff} _r,\]

    \[\texttt{src} (x',y')_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} (x',y')_g+ \texttt{upDiff} _g\]

    および

    \[\texttt{src} (x',y')_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} (x',y')_b+ \texttt{upDiff} _b\]

  • カラー画像で固定範囲の場合

    \[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r- \texttt{loDiff} _r \leq \texttt{src} (x,y)_r \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_r+ \texttt{upDiff} _r,\]

    \[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g- \texttt{loDiff} _g \leq \texttt{src} (x,y)_g \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_g+ \texttt{upDiff} _g\]

    および

    \[\texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b- \texttt{loDiff} _b \leq \texttt{src} (x,y)_b \leq \texttt{src} ( \texttt{seedPoint} .x, \texttt{seedPoint} .y)_b+ \texttt{upDiff} _b\]

ここで$src(x',y')$は,その成分に属することがすでにわかっている,画素の近傍の1つの値である。つまり、接続されたコンポーネントに追加されるためには、そのピクセルの色/輝度が十分に近い必要があります。

  • 浮動小数点数の場合は、既に連結成分に属している隣のピクセルの色/明るさ。
  • 固定範囲の場合は、シードポイントの色/明るさ。

これらの関数を利用して,連結成分をその場で指定した色でマーキングしたり,マスクを作成して輪郭を抽出したり,その領域を別の画像にコピーしたりすることができます.

引数
image 入出力 1または3チャンネル,8ビット,または浮動小数点の画像.が設定されていない限り,この関数によって変更されます.FLOODFILL_MASK_ONLYフラグが設定されていない限り,この関数によって変更されます.以下の詳細を参照してください.
mask imageよりも幅が2ピクセル,高さが2ピクセル大きい,1チャンネルの8ビット画像であるべきオペレーションマスク.これは入力と出力の両方のパラメータなので,責任を持って初期化しなければなりません.フラッドフィリングは、入力マスクのゼロでないピクセルを越えて行うことはできません。例えば、エッジ検出器の出力をマスクとして使用すると、エッジでのフィリングを止めることができます。出力時には,画像中の塗りつぶされたピクセルに対応するマスク内のピクセルが,後述する flags で指定された値,あるいは 1 に設定されます.さらにこの関数は,内部処理を簡単にするために,マスクの境界を 1 で埋めます.したがって,塗りつぶされた領域が重ならないようにするために,同じマスクをこの関数の複数回の呼び出しで利用することができます.
seedPoint 開始点。
newVal 塗り替えられた領域のピクセルの新しい値です。
loDiff 現在観測されているピクセルと,そのコンポーネントに属する隣接ピクセルの1つ,あるいはコンポーネントに追加されるシードピクセルとの間の,最大の輝度/色差(下側).
upDiff 現在観測されているピクセルと、コンポーネントに属する隣接ピクセルの1つ、またはコンポーネントに追加されるシードピクセルとの間の最大上側輝度/色差。
rect オプションの出力パラメータ.この関数によって,再描画される領域の最小境界矩形が設定されます.
flags 操作フラグ.最初の8ビットは,接続性の値を含みます.デフォルト値の4は,4つの最近接ピクセル(エッジを共有するピクセル)のみが考慮されることを意味します.接続性の値が8の場合は、8つの最近接ピクセル(コーナーを共有するピクセル)が考慮されることを意味します。次の8ビット(8-16)には、マスクを埋めるための1~255の値が入ります(デフォルト値は1)。例えば、「4|(255 << 8)」とすると、4つの最近接ピクセルが考慮され、マスクは255の値で埋められます。以下の追加オプションは上位ビットを使用するため、接続性やマスクの塗りつぶし値との組み合わせは、ビット単位または(|)を使用してさらに行うことができます(参照)。FloodFillFlags.
覚え書き
マスクは塗りつぶされた画像よりも大きいため、画像内のピクセル$(x, y)$は、画像のピクセル$(x+1, y+1)$に相当します.
参照
findContours

floodFill() [2/2]

CV_EXPORTS int cv::floodFill ( InputOutputArray image,
Point seedPoint,
Scalar newVal,
CV_OUT Rect * rect = 0,
Scalar loDiff = Scalar(),
Scalar upDiff = Scalar(),
int flags = 4
)

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

なしのバリアントmaskパラメータ

integral()

CV_EXPORTS_W void cv::integral ( InputArray src,
OutputArray sum,
int sdepth = -1
)

これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。

threshold()

CV_EXPORTS_W double cv::threshold ( InputArray src,
OutputArray dst,
double thresh,
double maxval,
int type
)

各配列要素に対して,固定レベルの閾値を適用します.

この関数は,マルチチャンネル配列に対して,固定レベルの閾値を適用します.この関数は通常,グレースケール画像から2値(バイナリ)画像を得るために利用されます(compareを利用することもできます),あるいは,ノイズの除去,つまり,小さすぎる,あるいは大きすぎる値を持つピクセルを除外するために利用されます.この関数がサポートする閾値には,いくつかの種類があります.これらは,typeパラメータで決定されます.

また,特殊な値THRESH_OTSUまたはTHRESH_TRIANGLEを上記の値の1つと組み合わせることもできます.このような場合,この関数は,Otsu's または Triangle アルゴリズムを用いて最適な閾値を決定し,指定された閾値の代わりにそれを利用します.

覚え書き
現在,Otsu's 法と Triangle 法は,8 ビットシングルチャンネル画像に対してのみ実装されています.
引数
src 入力配列(マルチチャンネル,8ビットまたは32ビット浮動小数点).
dst src と同じサイズ,同じ型,同じチャンネル数の出力配列.
thresh しきい値.
maxval 閾値処理タイプで利用される最大値.THRESH_BINARYおよびTHRESH_BINARY_INVスレッショルドタイプで利用される最大値.
type 閾値処理の種類(参照ThresholdTypes).
戻り値
大津法や三角法を利用する場合は,計算された閾値を表します.
参照
adaptiveThreshold,findContours,compare,min,max