如何获取并将MMALSharp图像转换为OpenCV Mat图像?

时间:2019-07-08 14:44:32

标签: .net opencv raspberry-pi core

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

我为此找到了一些库

MMALSharpopencvsharp

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

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

我只发现了方法Source

TakeRawPicture(ICaptureHandler handler)

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

该问题是否有更好的解决方案?

1 个答案:

答案 0 :(得分:0)

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