2016-06-23 11 views
0

私はopencvを使用してAndroidアプリケーションを開発しています。 私はC++で書かれたアルゴリズムをopencvを使ってjavaに移植しています。 元のコードでは 'IplImage'が使用されていますが、今は 'Mat'を使用するように強制されています。私は、コードのほとんどを変換するために管理が、私は次の手順で問題に直面している:C++ opencv IplImage imageDataとwidthStepをandroid opencvに変換してください。

IplImage *src; 
src->imageData; 
src->widthStep; 

は私が

[JAVA - Mat]src.dataAddr() as an equivalent for [C++ - IplImage]src ->imageData 

[JAVA - Mat]src.step1(0) as an equivalent for [C++ - IplImage]src->widthStep ? 

リンクのみを使用することができます私はこのトピックに固有のものがthis oneで、 'IplImage'を 'Mat'に変換する方法を説明していますが、それでもC++であることがわかりました。私はjavacvを使うことはできません。深さのために

おかげ

+0

深度の場合、Matクラスには 'depth()'メソッドがあります - http://docs.opencv.org/java/2.4.2/org/opencv/core/Mat.html#depth() – NXA

答えて

0

Mat class has a method depth()

stepのMatがIplImageのwidthStepとまったく同じではないため、widthStepはややこしいですが、multiple-of-four widthStepはもう必要ないようです。 Hereは興味深い答えです。つまり、Mat class also has a method for getting the stepと言いました。 imageDataについて

、私はIplImageへの正確画像データが含まれているかわからないけど、マットで、あなたは行列をループしてget(int row, int col)のようなメソッドを使用して、個々のピクセルのからデータを取得することができます。 documentation of Matを参照してください。私はあなたが多くのオプションを得ると確信しています。

ドキュメントの最初には、IplImageとMatについての議論と、データがMatに保存される方法とIplImageで保存される方法についての議論があります。

を検索するので、マット内のデータのレイアウトは、OpenCVの1.xのからIplImageで、 やCvMatNDの種類れるCvMatと完全に互換性があります

とそれを読んでください。このユーザ割り当てデータ

また読み取る周り

まだ部分的に非常に一般的なケースは、マットのれるCvMatやIplImageへの 変換です。この目的のために、 は、CvMatまたはIplImageへのポインタをとる特別なコンストラクタであり、データをコピーするかどうかを示す オプションのフラグです。

関連する問題