Создайте объект emguCV.Mat в C#

У меня есть камера flycapture, и я пытаюсь преобразовать полученное изображение в emguCV.Mat (потому что я читал, что он лучше по производительности и управлению памятью, чем старый emguCV.Image<,>)

Моя проблема в том, что в emguCV.Mat Конструктор Мне нужно предоставить указатель на данные изображения, и я понятия не имею, как это сделать.

Моя лучшая догадка:

m_camera.RetrieveBuffer(m_rawImage);
m_rawImage.Convert(FlyCapPixelFormat.PixelFormatBgr, m_processedImage);

int rowBytes = Convert.ToInt16(
       (double)m_processedImage.receivedDataSize / m_processedImage.rows);

emguCV.Mat testmat = new emguCV.Mat(
       (int)m_processedImage.rows, 
       (int)m_processedImage.cols, 
       DepthType.Cv8U, 
       3, 
       (IntPtr)m_processedImage.GetRawNativeImagePointer(), 
       rowBytes);

Где оба m_rawImage а также m_processedImage являются FlyCapture2.Image объекты. а также m_processedImage.GetRawNativeImagePointer() возвращается void*,

Строка с вызовом emguCV.Mat конструктор дает мне следующую ошибку

Указатели и буферы фиксированного размера могут использоваться только в небезопасном контексте

0 ответов

Другие вопросы по тегам