プレーンな C インターフェイスを提供する DLL 内で OpenCV を使用しています。C++ オブジェクトを呼び出し元のアプリケーションに渡すことはできません。
この DLL の一部は、後のパターン認識のために基準学習を実行します。これにより、キーポイントのリストと Mat オブジェクトが生成されます。これらのデータは、呼び出し元のアプリケーションによって保存される必要があります。
プレーンな C 構造体を使用すれば、DLL インターフェイスを介してキーポイントを渡すことは問題ありません。そのようなキーポイントのメンバーは簡単に変換できます。しかし、cv::Mat のどの部分が本当に必要なのかわかりません。または、より正確に言うと、私のマットオブジェクトは、メモリ領域を指すメンバー「データ」を使用しますが、含まれるデータの量がわかりません。
私の質問: cv::Mat オブジェクトをプレーンな C スタイルの構造に変換するにはどうすればよいですか? データ フィールドの正確な長さを推定するにはどうすればよいですか?
ありがとう!