[32/64bit] 入力画像の各ピクセルについて,最も近い0ピクセルまでの距離を計算します.
imgproc_distanceTransform p1,p2,p3,p4,p5
p1 = sptr : IntPtr src p2 = sptr : IntPtr dst p3 = int : int distanceType p4 = int : int maskSize p5 = int : int dstType
(プラグイン / モジュール : OpenCvSharpExtern.dll)
関数 cv::distanceTransform は,2値画像の各ピクセルから,最も近い0ピクセルまでのおおよその,あるいは正確な距離を計算します.maskSize == DIST_MASK_PRECISE かつ distanceType == DIST_L2 の場合,この関数は [72] で述べられているアルゴリズムを実行します.このアルゴリズムは,TBB ライブラリによって並列化されています.その他の場合は,アルゴリズム [28] が利用されます.つまり,この関数は,あるピクセルに対して,水平,垂直,斜め,騎士の動きという基本的なシフトからなる,最も近い0ピクセルへの最短経路を求めます(最新のものは,\\のマスクで利用可能です).全体の距離は、これらの基本的な距離の合計として計算されます。距離関数は対称でなければならないので、水平方向と垂直方向のシフトはすべて同じコスト(aと表記)でなければならず、対角線方向のシフトはすべて同じコスト(bと表記)でなければならず、ナイトの動きはすべて同じコスト(cと表記)でなければなりません。DIST_C と DIST_L1 では、距離は正確に計算されますが、DIST_L2 (Euclidean distance) では、距離は相対的な誤差でしか計算できません (mask を使うとより正確な結果が得られます)。a,b,c に対して,OpenCV は原著論文で提案された値を使用します: DIST_L1: a = 1, b = 2 DIST_L2: a = 1, b = 2: 3×3: a=0.955, b=1.3693 5×5: a=1, b=1.4, c=2.1969 DIST_C: a = 1, b = 1通常、高速で粗い距離推定DIST_L2には、??? -? ???のマスクを使用する。より正確な距離推定DIST_L2のためには、\(5\)マスクや精密アルゴリズムを用いる。この関数は,各ピクセルの最小距離\((x, y)\)を計算するだけでなく,0個のピクセルで構成される最近接連結成分(labelType==DIST_LABEL_CCOMP)や最近接0ピクセル(labelType==DIST_LABEL_PIXEL)を特定します.labels(x, y)には,成分・画素のインデックスが格納されます.labelType==DIST_LABEL_CCOMP の場合,この関数は,入力画像中のゼロピクセルの連結成分を自動的に見つけ,それらに個別のラベルを付けます.labelType==DIST_LABEL_PIXEL の場合,この関数は入力画像を走査し,すべての0ピクセルを個別のラベルでマークします.このモードでは,複雑さは線形です.つまり,この関数は,2値画像のボロノイ図を非常に高速に計算する方法を提供します.現在のところ,2番目のモードでは,近似距離変換アルゴリズムしか利用できません.つまり, maskSize=DIST_MASK_PRECISE はまだサポートされていません. 元関数名(C#): imgproc_distanceTransform 元DLLエクスポート名: imgproc_distanceTransform 参照元CSファイル: Internal\PInvoke\NativeMethods\imgproc\NativeMethods_imgproc.cs ▼ C言語側関数定義
CVAPI(ExceptionStatus) imgproc_distanceTransformWithLabels(cv::_InputArray *src, cv::_OutputArray *dst, cv::_OutputArray *labels, int distanceType, int maskSize, int labelType) { BEGIN_WRAP cv::distanceTransform(*src, *dst, *labels, distanceType, maskSize, labelType); END_WRAP }
プラグイン / モジュール | OpenCvSharpExtern.dll |
バージョン | 1.00 |
作成日 | 2021/11/30 |
著作者 | inovia |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_imgproc |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |