core_Mat_row

[32/64bit] 指定された行列行に対する行列ヘッダを作成します.

core_Mat_row p1,p2,p3

p1 = sptr : IntPtr self
p2 = int : int y
p3 = var : out IntPtr returnValue

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

解説

このメソッドは,指定された行列の行に対する新しいヘッダを作成し,それを返します.これは,行列のサイズに関わらず,O(1) の処理です.新しい行列の基礎データは,元の行列と共有されます.以下は,LU やその他多くのアルゴリズムで利用される,古典的な基本行列処理の 1 つである axpy の例です:inline void matrix_axpy(Mat& A, int i, int j, double alpha){ A.row(i) += A.row(j)*alpha;}fragmentNote現在の実装では,以下のコードは期待通りに動作しません.Mat A;...A.row(i) = A.row(j); // うまくいきません. これは,A.row(i) が一時的なヘッダを形成し,さらに別のヘッダに割り当てられるために起こります.これらの操作はそれぞれO(1)、つまりデータはコピーされないことを覚えておいてください。したがって,j番目の行がi番目の行にコピーされることを期待していたかもしれない場合には,上記の割り当ては真ではありません.これを実現するには,この単純な代入を式に変えるか, Mat::copyTo メソッドを利用する必要があります.A.row(j) = A.row(j) + 0;// これは少し長いですが,推奨される方法です.A.row(j).copyTo(A.row(i));例: samples/cpp/pca.cpp,samples/cpp/train_HOG.cpp.

元関数名(C#): core_Mat_row
元DLLエクスポート名: core_Mat_row
参照元CSファイル: Internal\PInvoke\NativeMethods\core\NativeMethods_core_Mat.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) core_Mat_row(cv::Mat *self, int y, cv::Mat **returnValue)
{
    BEGIN_WRAP
    *returnValue = new cv::Mat(self->row(y));
    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