core_Mat_create2

[32/64bit] 必要に応じて,新しい配列データを確保します.

core_Mat_create2 p1,p2,p3,p4

p1 = sptr : IntPtr self
p2 = int : int ndims
p3 = var : [MarshalAs(UnmanagedType.LPArray)] int[] sizes
p4 = int : int type

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

解説

これは,Mat の重要なメソッドの 1 つです.配列を生成する新スタイルの OpenCV 関数やメソッドのほとんどは,各出力配列に対してこのメソッドを呼び出します.このメソッドは,次のようなアルゴリズムを用います:現在の配列の形状と型が新しいものと一致する場合は,直ちに戻ります.そうでない場合は, Mat::release を呼び出して以前のデータの参照を解除します.


新しいヘッダを初期化します.


total()*elemSize() バイトの新しいデータを確保します.


データに関連付けられた新しい参照カウンタを確保し,それを 1 にセットします.このような方式は,メモリ管理を頑健かつ効率的にすると同時に,余計なタイプミスを防ぐのに役立ちます.つまり,通常,出力配列を明示的に確保する必要はありません。つまり,次のように書く代わりに,:Mat color;...Mat gray(color.rows, color.cols, color.depth());cvtColor(color, gray, COLOR_BGR2GRAY);fragmentty 単に次のように書くことができます:Mat color;...Mat gray;cvtColor(color, gray, COLOR_BGR2GRAY);fragmentなぜならば,cvtColor は,OpenCV のほとんどの関数と同様に,出力配列に対して Mat::create() を内部的に呼び出しているからです.例: samples/cpp/camshiftdemo.cpp,samples/cpp/edge.cpp,samples/cpp/ffilldemo.cpp,samples/cpp/grabcut.cpp,samples/cpp/stitching_detailed.cpp,samples/cpp/tutorial_code/Histograms_Matching/MatchTemplate_Demo.cpp,samples/dnn/segmentation.cpp.

元関数名(C#): core_Mat_create2
元DLLエクスポート名: core_Mat_create2
参照元CSファイル: Internal\PInvoke\NativeMethods\core\NativeMethods_core_Mat.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) core_Mat_create2(cv::Mat *self, int ndims, const int *sizes, int type)
{
    BEGIN_WRAP
    self->create(ndims, sizes, type);
    END_WRAP
}

情報

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