You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派通过Node-RED显示USB摄像头实时画面的技术求助

树莓派USB摄像头Node-RED实时显示问题
  • 目前卡在寻找树莓派连接的USB摄像头实时画面显示所需的Node-RED输入节点及额外组件上,已知需要用function节点添加黄色颜色检测代码、用ui_template仪表盘显示画面,但不确定输入节点该选什么。
  • 尝试了GitHub上的一个流,但搞不懂为什么需要用到http request节点:
[{"id":"86fe9b81.31c418","type":"http request","z":"fafa85fb.98fd68","name":"","method":"GET","ret":"bin","paytoqs":false,"url":"http://192.168.178.21/tmpfs/snap.jpg?usr=admin&pwd=instar","tls":"","proxy":"","authType":"","x":265,"y":343,"wires":[["4068ec45.05b034"]]},{"id":"54d0ea94.c1b9a4","type":"ui_template","z":"fafa85fb.98fd68","group":"73b331f4.a8bda","name":"Display image","order":1,"width":"6","height":"6","format":"\n<img alt=\"HTTP Snap\" src=\"data:image/jpg;base64,{{msg.payload}}\" />\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":575.3645515441895,"y":343.6041603088379,"wires":[[]]},{"id":"4068ec45.05b034","type":"base64","z":"fafa85fb.98fd68","name":"","action":"","property":"payload","x":415,"y":343,"wires":[["54d0ea94.c1b9a4"]]},{"id":"3fa57e6a.6819f2","type":"inject","z":"fafa85fb.98fd68","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":115,"y":343,"wires":[["86fe9b81.31c418"]]},{"id":"73b331f4.a8bda","type":"ui_group","z":"","name":"HTTP Snap","tab":"d75e440d.a22678","disp":true,"width":"6","collapse":false},{"id":"d75e440d.a22678","type":"ui_tab","z":"fafa85fb.98fd68","name":"Cameras","icon":"camera_alt","order":2}]

关于HTTP Request节点的作用

你试的这个流是针对网络IP摄像头设计的——这类摄像头会对外提供HTTP接口(比如示例里的http://192.168.178.21/tmpfs/snap.jpg就是摄像头的快照URL),HTTP Request节点的作用就是向这个URL发送请求,获取摄像头的图片数据。但你的情况是本地USB摄像头,完全不需要走HTTP请求,直接用专门的本地摄像头节点读取设备即可。

本地USB摄像头的Node-RED解决方案

必备节点和组件

  • node-red-contrib-usbcamera:专门用于捕获本地USB摄像头画面的输入节点,配置好设备路径(比如/dev/video0)、分辨率、帧率后,就能直接读取摄像头的视频流或快照。
  • base64节点:把摄像头输出的二进制图片转为base64编码,这样ui_template才能用<img>标签正常渲染。
  • function节点:用来添加黄色颜色检测逻辑;如果需要复杂图像处理,还可以配合node-red-contrib-opencv节点,或者在function里直接编写像素分析代码。
  • ui_template节点:和你计划的一致,用来展示实时画面,模板内用<img src="data:image/jpg;base64,{{msg.payload}}" />即可。

基础流程示例

  1. 拖入usbcamera节点,配置摄像头参数(选择对应/dev/video设备,设置分辨率)。
  2. 连接到base64节点,将图片数据转为base64格式。
  3. 连接到function节点,编写黄色检测代码(比如遍历像素RGB值,标记黄色区域后输出修改后的图片数据)。
  4. 最后连接到ui_template节点,渲染处理后的实时画面。

内容的提问来源于stack exchange,提问作者Azureja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 08:05:40