使用 eBUS SDK 和 EmguCV 在 C# 中从 PvBuffer 创建垫
Create a Mat from a PvBuffer in C# using eBUS SDK and EmguCV
我正在使用 EmguCV 3.4.1 和 eBUS SDK。我有通过 GigE 传输的视频,我想将 PvBuffer 转换为 MAT,这样我就可以使用 OpenCV 创建显示直方图。
我遵循了与您如何在 C++ 中创建 Mat 类似的风格。不幸的是,此解决方案需要将项目标记为不安全。
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 位灰度图像的红外相机拍摄图像。
我正在使用 EmguCV 3.4.1 和 eBUS SDK。我有通过 GigE 传输的视频,我想将 PvBuffer 转换为 MAT,这样我就可以使用 OpenCV 创建显示直方图。
我遵循了与您如何在 C++ 中创建 Mat 类似的风格。不幸的是,此解决方案需要将项目标记为不安全。
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 位灰度图像的红外相机拍摄图像。