Я придерживался стиля, подобного тому, как вы создали Мат в 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-битные изображения в оттенках серого.