opencvを使用してディスクからイメージを読み取るネイティブライブラリの間にあるC++/Cli interopレイヤーを作成しています。 interopレイヤは、イメージをマネージビットマップに変換し、それをc#uiに送信する必要があります。
実際の変換はメモリをコピーすることで簡単です。問題は、このアプリケーションでは多数の大きな画像を処理する必要があるため、非常にリソースが集中することです。このため、私は画像の2つのコピーをメモリに保存することを避け、ポインタを管理されたビットマップの画像データに割り当てて、opencv画像データを指すようにしたいと考えています。
私は、管理ビットマップをロックし、Scan0ポインタをopencvポインタに割り当て、StrideがopencvイメージのwidthStep(通常のIplImageを使用しています)に設定されていることを確認しましたが、これを行うと、出てくる画像は完全に黒です。
ネイティブイメージデータをコピーしないで管理ビットマップを作成する方法はありますか?マネージドビットマップとメモリ管理
おかげで、
マックス