私の目標は、既存の画像処理パイプライン (Halide で記述) を、NL 手段のノイズ除去などの OpenCV 関数で強化することです。OpenCV 関数は Halide のスケジューリング機能を使用することができないため、私の計画は、各 OpenCV ステージの前に各 Halide 関数を実現することです。残りの問題は、Halide Image (Func 実現の結果) から OpenCV Mat (OpenCV 関数への入力として) へ、および完了時に OpenCV Mat から Halide Image への最適な変換方法です。私のHalide画像はフロートタイプで、3つのチャンネルがあります。
これに対する明らかな解決策の 1 つは、あるデータ型から別のデータ型にデータをコピーする関数を作成することですが、これは無駄だと思います。データのコピーに貴重な時間がかかるだけでなく、イメージが 2 つの異なるデータ型として保存されるため、メモリの浪費にもなります。ポインターまたはデータ バッファーを使用して、画像データを新しい形式で単純に再ラップする方法はありますか? うまくいけば、このプロセスが元に戻せるので、Halide から OpenCV に移行し、OpenCV 関数が完了したら Halide に戻ることができます。