1

iOS で openCV 用に書いたいくつかの opencv コードの移植に取り組んでいます。同じバージョンのopenCV(2.4.3)の下で、両方がc ++で記述されていることを考えると、構文がまったく異なる理由について混乱しています。

このようないくつかの配列処理方法を使用しようとしています

//iOS Code
cv::Mat image;//this comes from each live frame from the camera
float m[] =    { 1.0, 2.0,  1.0, 1.0, 2.0, 1.0, 1.0, 2.0, 1.0};
cv::Mat kernel = cv::Mat(3, 3, CV_32F, m);
int ddepth = -1;
cv::filter2D(image, image, ddepth, kernel);

これはコンパイルされ、iOS で正常に動作します。Android 環境にコピーすると、cv::Mat ではなく、入力配列と出力配列を使用する必要があると主張します。このようにキャストしてみました

cv::filter2D((InputArray)image, (OutputArray)image, ddepth, kernel);

そしてそれはコンパイルされますが、間違った変換のために実行時に失敗します。誰かがこの不一致を理解するのを手伝ってくれますか、またはそれを修正する方法を教えてください。

4

0 に答える 0