小编luk*_*ecv的帖子

如何用C++在Raspberry Pi上通过i2c将MLX90640热像仪图像数据导入OpenCV?

我正在使用通过 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()函数中,那么我认为它会起作用。我不确定该怎么做。

fbuf 代码片段

这个 for 循环似乎是我需要放入函数中的内容grab_frame()

for(int y …
Run Code Online (Sandbox Code Playgroud)

c++ opencv i2c raspberry-pi3

5
推荐指数
0
解决办法
5365
查看次数

标签 统计

c++ ×1

i2c ×1

opencv ×1

raspberry-pi3 ×1