[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 |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_core_Mat |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |