首页 > 解决方案 > 如何获取 MMALSharp 图像并将其转换为 OpenCV Mat 图像?

问题描述

我想通过 .net core 2.2 为 Raspberry pi3b (raspbian) 创建人脸检测应用程序。

我为此找到了一些库:

MMALSharp , opencvsharp

但是我没有在 MMALSharp 库中找到任何返回字节数组或类似内容的方法,这些方法可以包含图像数据。MMALSharp 中是否有任何方法可以在不将图像写入磁盘的情况下从相机模块获取原始图像到变量?

我已经有使用使用笔记本电脑网络摄像头的 Opencv (OpenCvSharp) 的工作代码(在我的 Windows 笔记本电脑上)。但我需要使用树莓派相机模块。

我发现只有那个方法Source

TakeRawPicture(ICaptureHandler handler)

但它不返回变量,所以我应该在 MMALSharp 库中定义我自己的函数并将其转换为 OpenCV 图像变量。

有没有更好的解决这个问题的办法?

标签: opencv.net-coreraspberry-pi

解决方案


MMALSharp 有一个InMemoryCaptureHandler基本上包装了List<byte>. 创建一个实例InMemoryCaptureHandler并将其传递给TakeRawPicture方法。处理完成后,您可以访问实例的WorkingData属性以访问图像数据。InMemoryCaptureHandler


推荐阅读