C++配列を2D opencv Matオブジェクトに変換する最も速い方法は何ですか? ブルートフォース方式は、2Dマットのすべてのエントリをループし、それらに配列の値を入力することです。
これを行うためのより良い/より速い方法がありますか? 何とか2次元配列に配列のポインタを渡すことができますか?
(私はopencv 2.4.8を使用しています)C++配列をopencvに変換する方法Mat
1
A
答えて
6
ありますが、documentationにはどのように達成できるかが分かります。
は、特にこのラインC++:マット::マット(行INT、colsの、int型、void *型データをint型、size_tのステップ= AUTO_STEP)
これは、あなたが行うことができることを意味し何かのように
double x[100][100];
cv::Mat A(100, 100, CV_64F, x);
これはデータをコピーしません。 openCVデータは行の長さであることを覚えておいてください。これは、1行のすべての列と次の行などを持つことを意味します。だからあなたの配列は、それが動作するためにこのスタイルに合っていなければなりません。
スピードについての資料もそれを語る:
データ - ポインタユーザデータに。データとステップパラメータを受け取る行列コンストラクタは行列データを割り当てません。代わりに、指定されたデータを指す行列ヘッダーを初期化するだけです。つまり、データはコピーされません。この操作は非常に効率的で、OpenCV関数を使用して外部データを処理するために使用できます。外部データの割り当てが自動的に解除されることはありませんので、注意してください。
これは非常に高速ですが、同じ配列です。変更しないとcv :: Matで変更され、破壊された場合は存在しない場所を指します。
UPDATE:
私はあなたにもマットを作成し、memcpyを行うことができると言うのを忘れていました。この方法でデータをコピーしますが、可能です。
double x[100][100];
cv::Mat A(100,100,CV_64F);
std::memcpy(A.data, x, 100*100*sizeof(double));
関連する問題
- 1. OpenCV JavaでMatをInterger配列に変換する方法は?
- 2. バイト配列をPythonのOpenCV Matに変換する方法
- 3. OpenCVでRGBA配列をMatに変換する方法
- 4. OpenCV:2d配列からMAT変換後のMATのジャンク値
- 5. char配列をOpencv Matに変換する
- 6. C++のopencvコードでPyObject変数をMatに変換する方法
- 7. BufferedImageをOpenCvに変換するMat
- 8. OpenCVでMatをCV_16UC1に変換する方法
- 9. Caffe caffe :: DatumをOpenCV cv :: Matに変換するC++で
- 10. C++ - RGB 1-D ArrayをOpenCV Matに変換する
- 11. OpenCV - ベクトルのベクトルをMatに変換
- 12. JNIでビットマップをOpencv :: Matに変換
- 13. C#。 1D配列を2D配列に変換する方法
- 14. MatのOpenCV C++エラー:
- 15. ARFrame.capturedImage CVPixelBufferRefのOpenCv Matへのリアルタイム変換
- 16. OpenCVのMatオブジェクトをintに変換するには?
- 17. Mat(opencv)をINDArray(DL4J)に変換するには?
- 18. opencv cv :: MatをCVPixelBufferに変換するには
- 19. AndroidのARGB_8888イメージをネイティブOpenCVのMatに変換するには
- 20. Matオブジェクトの画像をAndroidのフロート配列に変換する
- 21. python opencv mat画像をtensorflow画像データに変換する
- 22. OpenCV CvMatをMatとポインタに変換する
- 23. openCV MatをDlibの画像に変換する
- 24. ArrayListを文字列配列(string [])に変換する方法C#
- 25. どのようにしてC#WritableBitmapをEmguCV/OpenCV Matに変換しますか?
- 26. C++変換文字列をバイト配列に変換する方法は?
- 27. opencv :: MatをMat *にコピーする*
- 28. OpenCv C++でMatを作成する
- 29. OpenCVのMat :: type()でMatオブジェクトのタイプを調べる方法
- 30. OpenCV Matを2次元配列で初期化する
OpenCV!それは明確に説明されている –