当前位置:首页>python>保姆级实操|LabVIEW + Python GRPC 图像毫秒级高效传递,附完整代码

保姆级实操|LabVIEW + Python GRPC 图像毫秒级高效传递,附完整代码

  • 2026-09-02 19:01:07
保姆级实操|LabVIEW + Python GRPC 图像毫秒级高效传递,附完整代码

我们都知道,Python 在 YOLO 模型识别、图像处理、OCR 文字识别方面有着天然优势,操作便捷、生态完善,是这类场景的首选;而 LabVIEW 在图像处理、模型推理领域缺乏良好的原生支持,很难独立实现高效的识别功能。之前我们曾介绍过 LabVIEW 传递图片路径给 Python,再由 Python 加载本地图片进行推理的方法,但在实际工业测试场景中,我们的图像大多来自相机实时采集——若每次都将实时图像保存到本地,再让 Python 读取识别,不仅效率极低,还会产生大量冗余文件,测试下来这种方法完全不可行。那么,如何高效解决 LabVIEW 与 Python 之间的实时图像传递?

其实,实现 LabVIEW 与 Python 之间的实时图像、命令传递有多种方法,比如:1.直接传递图像数组(效率低) 2. 通过指针访问图像内存,直接共享数据;3. 通过 GRPC 传递数据   这篇就详细介绍下Grpc实现图像传输。

实测可用!LabVIEW 加载 YOLO26 模型推理保姆级教程
导航目录:测试 & 自动化 & LabVIEW&C#&Python 实战干货合集(持续更新)

一、Python环境搭建

按照以下指令分别安装依赖的包(我使用的是Python3.10):

pip install grpcio==1.80.0pip install grpcio-tools==1.80.0

二、Labview环境

分别安装以下三个labview包,我使用的labview版本是2021

三、Python程序

(一)Proto文件

syntax = "proto3";package image_service;// 图像数据消息message ImageData {  bytes image = 1;  // 图像二进制数据  string format = 2;  // 图像格式,如jpeg、png等  int32 width = 3;  // 图像宽度  int32 height = 4;  // 图像高度}// 推理结果消息message DetectionResult {  string class_name = 1;  // 类别名称  float score = 2;  // 置信度得分  float x_min = 3;  // 边界框左上角x坐标  float y_min = 4;  // 边界框左上角y坐标  float x_max = 5;  // 边界框右下角x坐标  float y_max = 6;  // 边界框右下角y坐标}// 推理响应消息message InferenceResponse {  repeated DetectionResult results = 1;  // 推理结果列表  bool success = 2;  // 操作是否成功  string message = 3;  // 响应消息}// 命令请求消息message CommandRequest {  string command = 1;  // 命令类型  ImageData image_data = 2;  // 图像数据  map<string, string> parameters = 3;  // 可选参数}// 图像服务接口service ImageService {  // 处理命令和图像数据,返回推理结果  rpc ProcessImage(CommandRequest) returns (InferenceResponse);}

(二)生成Grpc服务端程序

代码太长了,这里就不全部贴了。关注点赞评论可以直接获取

四、Labview程序

Labview生成客户端代码也十分简单。按照之前公众号文章步骤生成即可!

LabVIEW 通信新方案|gRPC 入门到实操,跨语言联动更高效

客户端代码如下:

五、测试

分辨率3000*2000的jpg图像  3ms 

分辨率4024*3836bmp图像 2ms(bmp图像原始大小34M,传递时还是按照jpg格式传递)

六、总结

测试下来发现Grpc传递图像数据效率还是很高的。如果是在两台设备间传递会受带宽的影响。 我们传递时尽量使用jpg格式图像数据进行传递。
关注公众号点赞评论获取测试代码!
✨ 感谢点赞收藏评论的每个小伙伴,持续分享Python/C#/Labview / 测试 / 自动化/机械手/视觉定位/PLC实战干货,每周更新,欢迎关注!
预告:现在已经解决了数据传递问题。在此基础上写了Python作为图像处理的服务器程序。负责进行Yolo26推理,PaddleOCR识别,图像匹配等功能,Labview作为客户端负责发送指令和图像数据并接收服务端的处理结果。
已关注
关注
重播 分享 赞

最新文章

随机文章