2017-07-20 49 views
0

OpenCvsharpのForEachAsメソッドを評価しようとしていますが、メソッドの使い方がわかりません。OpenCVsharpのMat.ForEachAsDoubleメソッドの使用方法

グレースケールイメージをMatタイプにロードしました。私はこのイメージでForEachAsInt16メソッドを使用しようとします。 ForEachAsInt16のmetodはMatForeachFunctionInt16操作を入力として受け取ります。だから私はこのタイプの関数ポインタ(デリゲート)をインスタンス化する必要があります。それ、どうやったら出来るの?

答えて

1

安全なコンテキストでForEachAsInt16()引数として適切な署名付き関数unsafeを渡し、/unsafeキーワードでプロジェクトをコンパイルする必要があります。適切なシグネチャを持つ関数の

例:

unsafe static void Operation(short* pixel, int* position) 
{ 
    // Get or set pixel value. 
    short intencity = *pixel; 
    var row = position[0]; 
    var col = position[1]; 
} 

あなたは、引数として渡すことができます。

  • cv::Mat::forEach() OpenCVのドキュメント
  • :より多くの情報のチェックについては

    unsafe 
    { 
        mat.ForEachAsInt16(Operation); 
    } 
    

  • MSDN
  • OpenCVの
  • /unsafe (C# Compiler Options)参照
  • Implimentation "cv::Mat::forEach" (revised)プル要求に参照
  • 関連する問題