2015-11-10 2 views
0

Вот и проблема. В настоящее время мы выделяем управляемую память как байт []. Используя GCAlloc, мы свяжем этот массив. В рамках этого мы должны выровнять указатель, который мы передаем на устройство driVer на границе 4K. Драйвер устройства считывает данные и откладывает их в этот массив. Затем мы переходим оттуда. Я хочу использовать некоторые из SDK EmguCV, поскольку это приложение WPF.Нужна структура EmguCV

Я не могу понять, как получить эти данные в Mat или CvArray или другой объект, где я могу получить к нему доступ. Может ли кто-нибудь дать мне представление о том, как получить эти прикрепленные данные в объект EmguCV/OpenCV для дальнейшей обработки?

Спасибо, Doug

ответ

0

Оказывается, это не так уж плохо. Я w3as копал некоторые старые письма и наткнулся на это:

* Если кадр находится в памяти и у вас есть указатель, вы можете напрямую создать заголовок Mat, указывающий на конкретную память. Он очень эффективен, и копия памяти не требуется. Если память точка указателя на данные в BGR цветового пространства, и каждый пиксель представлена ​​в 3-х байтах, просто сделать:

Mat m = new Mat(imageSize, DepthType.Cv8U, 3, handler.AddrOfPinnedObject(), step); 

и вы будете иметь Mat Emgu CV, который разделяет данные с неуправляемым кодом *

.

Надеюсь, это поможет кому-то еще.

Doug