使用socket.io实现Python向Node.js传输OpenCV图像的故障求助
求助:Socket.io传输OpenCV处理图像时Node端libpng解码报错
当前正在调试跨端图像传输功能,目标是通过Socket.io将Python端OpenCV处理的图像发送至本地Node.js服务端,当前功能无法正常运行,恳请技术社区协助排查。
两端实现逻辑
Python端实现流程
- 依赖组件:Socket.IO客户端、OpenCV的
imread/imencode接口、base64模块,完成Socket客户端初始化 - 发送逻辑:在连接成功的回调中读取本地
screenshot.png图像,将图像编码为PNG格式二进制帧,经base64编码后通过img事件发送;同步注册连接成功、连接断开的回调逻辑,最终连接本地127.0.0.1:3000的Node服务并保持长连接监听
Node.js端实现流程
- 基础服务搭建:基于Express搭建HTTP服务,集成Socket.IO模块,根路由返回
index.html页面 - 接收处理逻辑:在Socket连接回调中,为已连接的客户端注册
img事件监听,将接收到的base64编码内容转为Buffer,通过opencv4nodejs解码为OpenCV图像后写入本地img.png文件;同步注册客户端断开连接的回调逻辑
运行时报错
程序启动运行后,Node.js端抛出如下libpng相关警告与错误:
libpng warning: Image width is zero in IHDR
libpng warning: Image height is zero in IHDR
libpng error: Invalid IHDR data
因英语表述能力有限,若有描述不周的地方还请见谅,感谢各位的帮助。
内容的提问来源于stack exchange,提问作者Siewdass Sf
相关产品推荐
相关产品推荐

