2012-02-23 109 views
0

我正在寫一個C++/Cli interop層,它位於提供使用opencv從磁盤讀取圖像的本機庫之間。互操作層應該將圖像轉換爲託管位圖,然後將其發送到c#ui。
通過複製內存,實際的轉換是微不足道的。問題是,這個應用程序必須處理許多大圖像,所以它非常耗費資源。因此,我想避免將圖像的兩個副本保留在內存中,而是將指針指向託管位圖中的圖像數據以指向opencv圖像數據。
我最初的想法是,我可以鎖定託管的位圖並將Scan0指針分配給opencv指針,然後確保將Stride設置爲opencv圖像的widthStep(我使用普通的IplImage),但是當我做到這一點,出來的圖像是完全黑色的。
有沒有什麼辦法可以創建一個託管位圖而不需要將原始圖像數據複製到它呢?託管位圖和內存管理

謝謝
最大

回答