Создайте Mat из PvBuffer в C #, используя eBUS SDK и EmguCV - PullRequest
0 голосов
/ 05 июня 2018

Я использую EmguCV 3.4.1 и eBUS SDK.У меня есть видео по GigE, и я хотел бы преобразовать PvBuffer в MAT, чтобы я мог использовать OpenCV для отображения гистограммы.

1 Ответ

0 голосов
/ 05 июня 2018

Я придерживался стиля, подобного тому, как вы создали Мат в C ++.К сожалению, это решение требует пометить проект как небезопасный.

    unsafe private Mat convertPvBufferToMat(PvBuffer aBuffer)
    {
        PvImage lImage = aBuffer.Image;
        lImage.Alloc(lImage.Width, lImage.Height, PvPixelType.Mono16);
        int[] sizes = new int[2] { (int)lImage.Height, (int)lImage.Width };
        Mat aMat = new Mat(sizes, DepthType.Cv16U, (IntPtr)lImage.DataPointer);

        return aMat;
    }

Я снимаю изображения с инфракрасной камеры, выводящей 16-битные изображения в оттенках серого.

...