video_findTransformECC2

[32bit] 2 つの画像間の幾何学的変換(ワープ)を,ECC 基準[67]に基づいて求めます.

video_findTransformECC2 p1,p2,p3,p4,p5,p6,p7

p1 = sptr : IntPtr templateImage
p2 = sptr : IntPtr inputImage
p3 = sptr : IntPtr warpMatrix
p4 = int : int motionType
p5 = ARGS_TERMCRITERIA : TermCriteria criteria
p6 = sptr : IntPtr inputMask
p7 = var : out double returnValue

(プラグイン / モジュール : OpenCvSharpExtern.dll)

解説

この関数は,ECC基準([67])に照らし合わせて,最適な変換(warpMatrix)を推定します.テンプレート画像と、最終的にワープした入力画像の相関係数である、最終的な拡張相関係数を返します。関数 findTransformECC は,findHomography や estimateRigidTransform とは異なり,強度の類似性を利用したエリアベースの位置合わせを行います.要するに,この関数は,画像を大まかに整列させる最初の変換を更新します.この情報が不足している場合は,初期化として identity warp(ユニティ行列)が利用されます.なお,画像が強い変位や回転を受ける場合は,画像を大まかに揃える初期変換が必要になります(例えば,画像の内容がほぼ同じになるような単純なユークリッド変換や類似性変換など).1枚目の画像に近い画像を得るために,2枚目の画像に逆ワープを利用します.つまり,フラグ WARP_INVERSE_MAP と warpAffine または warpPerspective を利用します.この関数の使用方法を示す OpenCV のサンプル image_alignment.cpp も参照してください.他にも,ocomputeECC, estimateAffine2D, estimateAffinePartial2D, findHomographyExamples: samples/cpp/image_alignment.cpp を参照してください.

元関数名(C#): video_findTransformECC2
元DLLエクスポート名: video_findTransformECC2
参照元CSファイル: Internal\PInvoke\NativeMethods\video\NativeMethods_video_tracking.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) video_findTransformECC2(
    cv::_InputArray *templateImage, cv::_InputArray *inputImage,
    cv::_InputOutputArray *warpMatrix, int motionType,
    MyCvTermCriteria criteria, cv::_InputArray *inputMask, double* returnValue)
{
    BEGIN_WRAP
    *returnValue = cv::findTransformECC(
        *templateImage, *inputImage, *warpMatrix, motionType,
        cpp(criteria), entity(inputMask));
    END_WRAP
}

情報

プラグイン / モジュールOpenCvSharpExtern.dll
バージョン1.00
作成日2021/11/30
著作者inovia
URLhttps://hsp.moe/
備考#include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as"
使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること
タイプOpenCVSharpラッパーDLL
グループNativeMethods_video_tracking
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\OpenCvSharpExtern.hs