Управляемое управление растровыми изображениями и памятью - PullRequest
0 голосов
/ 24 февраля 2012

Я пишу слой взаимодействия C ++ / Cli, который находится между собственной библиотекой, предоставляющей изображение, считываемое с диска с использованием opencv. Слой взаимодействия должен преобразовать изображение в управляемое растровое изображение, а затем отправить его на C # UI.
Фактическое преобразование тривиально, копируя память. Проблема в том, что это приложение должно обрабатывать много больших изображений, поэтому оно очень ресурсоемкое. Из-за этого я хотел бы избежать хранения двух копий изображения в памяти и скорее переназначить указатель на данные изображения в управляемом растровом изображении, чтобы указывать на данные изображения opencv.
Сначала я думал, что могу просто заблокировать управляемое растровое изображение и назначить указатель Scan0 указателю opencv, а затем убедиться, что для параметра Stride установлено значение widthStep изображения opencv (я использую обычный IplImage), но когда я делаю это полученное изображение полностью черное.
Есть ли способ создать управляемое растровое изображение без копирования в него данных собственного изображения?

Спасибо,
Max

1 Ответ

0 голосов
/ 09 августа 2012

Оказывается, есть конструктор, который может это сделать, см.

http://msdn.microsoft.com/en-us/library/zy1a2d14.aspx

убедитесь, что изображение opencv не выходит за рамки!

...