python - 如何从 node-red 打开 CV2.frame 窗口? - 执行脚本到 UI 应用程序

标签 python python-3.x opencv raspberry-pi node-red

我在节点红色中有一个执行节点来执行“lxterminal python3 code.py”。我想在前台运行脚本,因为我使用 cv2.imshow。 Node-red 只是在后台执行它,所以我看不到相机输出。

此节点是流的最后一个节点。我想打开一个具有 opencv 依赖项的 python 脚本来检测对象并在屏幕上显示相机输出。

错误信息:

(lxterminal:5169): Gtk-WARNING **: cannot open display:

提前致谢

Node-red 在启动时由用户 pi 自动启动

最佳答案

我猜测 Node-RED 作为服务运行,在启动时启动,因此它无法访问 X-Windows 环境。

这是因为当它作为服务运行时,X-Windows 可能没有运行,或者可能没有用户登录。

从 Node-RED 运行 GUI 代码确实不是它的设计目的,即使它是流程中的最后一个节点,它也会无限期地阻止该节点。

如果您真的、真的需要这样做(您真的、真的不需要),那么您应该从首先设置 DISPLAY 环境变量的 shell 脚本运行 python 代码。像这样:

#/bin/sh
export DISPLAY=:0.0
python foo.py

这将允许 python 应用程序连接到 X。但请记住,如果 pi 用户当时未登录,这将失败。

关于python - 如何从 node-red 打开 CV2.frame 窗口? - 执行脚本到 UI 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57607695/

相关文章:

java - OpenCV/JavaCV Android 人脸检测初始化

OpenCV:跟踪矩形的最佳方法

Python + MySQLdb executemany

python - 如何注册序列中的 ID 和出现次数(或次数)?

Python 和 plot() : how to limit the number of x-axis ticks (labels)

python-3.x - : NotImplementedError发生了异常

python - 比较两个字典中的键并使用 for 循环更新值

python - uint8 CIE Luv Mat 的取值范围是多少?

python - Django simple_tag 和设置上下文变量

python - 添加 Lambda 层后无法合并 keras 模型