core_Mat_reshape1

[32/64bit] データをコピーすることなく,2 次元行列の形状やチャンネル数を変更します.

core_Mat_reshape1 p1,p2,p3,p4

p1 = sptr : IntPtr self
p2 = int : int cn
p3 = int : int rows
p4 = var : out IntPtr returnValue

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

解説

このメソッドは,*this の要素に対する新しい行列のヘッダを作成します.この新しい行列は,サイズやチャンネル数が異なっていても構いません.以下の条件であれば,どのような組み合わせも可能です:新しい行列に余分な要素が含まれておらず,また要素が除外されていない場合.したがって,行*列*チャネル() の積は,変換後も同じでなければいけません.


データはコピーされません。つまり,これは O(1) の演算です.したがって,行数を変更したり,その他の方法で行の要素のインデックスを変更したりした場合,その行列は連続したものでなければいけません.Mat::isContinuous を参照してください.例えば,STL のベクトルとして格納された 3D ポイントの集合があり,そのポイントを 3xN の行列として表現したい場合,次のようにします: std::vector<Point3f> vec;...Mat pointMat = Mat(vec).// ベクトルを Mat に変換,O(1) の演算 reshape(1).// Nx1 の 3 チャンネル行列から,Nx3 の 1 チャンネル行列を作成します.                              // これも O(1) の処理です. t(); // 最後に,Nx3 の行列を転置します.                          これは, // すべての要素をコピーすることになりますfragmentExamples: samples/cpp/pca.cpp, samples/dnn/classification.cpp.

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