我正在使用通过 i2c 连接到 Raspberry Pi 3 的Melexix MLX90640 32x24 热像仪传感器。
使用Pimoroni的代码,我可以通过帧缓冲区及其fbuf示例在屏幕上显示带有假颜色的相机数据。
由于它直接显示在帧缓冲区上,而不是视频流或相机设备上,因此我无法在OpenCV中读取它。我想使用Open CV中的视频流来统计房间里的人数,但不知道如何修改fbuf代码以输出视频。
它不需要是视频,只是 OpenCV 可以连续读取的图像流
我安装了v4l2loopback以在 Pi 上创建虚拟摄像头设备,地址为/dev/video0
。然后我使用Gstreamer创建 fbuf 代码将红外相机伪色数据写入的屏幕特定区域的流。这创建了一个可由 OpenCV 读取的流,但它没有更新流中的热图像数据。有时图像数据会部分显示,但可以正常显示 Pi 桌面。它也看起来不优雅且有缺陷,所以我想要一个更可靠的解决方案。
Lepton有一个使用 v4l2loopback 中的ondemandcam示例的传感器工作示例,但这是一个不同的传感器,它使用 SPI 而不是 i2c 进行通信。
我的目标是将此代码与 Pimoroni 的帧捕获代码 fbuf 结合起来,从传感器获取稳定的视频流,以便我可以将其导入 OpenCV。
Lepton 的代码基于 v4l2loopback 中的 ondemandcam 示例。它将自己的传感器代码添加到该grab_frame()
函数中。该open_vpipe()
功能与 ondemandcam 示例相同。
如果我可以将 fbuf 中的帧缓冲区代码放入该grab_frame()
函数中,那么我认为它会起作用。我不确定该怎么做。
这个 for 循环似乎是我需要放入函数中的内容grab_frame()
。
for(int y …
Run Code Online (Sandbox Code Playgroud)