图像监视器
该代码实现了一个基于
PyQt6
的图像监控器应用,名为 ImageDisplay
。这个应用能够接收并实时显示图像数据,并提供多种工具来调整和保存图像。用户可以通过该应用监控图像流,应用滤波器,调整显示参数,并保存当前图像。功能介绍
该代码实现了一个基于 PyQt6
的图像监控器应用,名为 ImageDisplay
。这个应用能够接收并实时显示图像数据,并提供多种工具来调整和保存图像。用户可以通过该应用监控图像流,应用滤波器,调整显示参数,并保存当前图像。
代码结构
- 导入必要的模块和库
- 定义
ImageDisplay
类 - 定义主函数
main
- 定义脚本入口
类:ImageDisplay
简短功能介绍
ImageDisplay
类是一个自更新的图像显示窗口,能够实时接收和显示图像数据,并提供多种工具和设置来调整图像显示效果。
方法:__init__
功能:初始化 ImageDisplay
对象,并设置窗口名称和父对象。
参数:
name
:窗口名称。parent
:父对象(可选)。
主要步骤:
- 初始化属性字段。
- 创建并设置图像显示区域。
- 订阅图像流和掩码流。
- 设置图像显示和掩码显示的初始数据。
- 创建图像显示窗口和控件布局。
- 启动定时器以定期更新图像。
方法:sizeHint
功能:返回窗口的推荐大小。
返回值:QtCore.QSize(800, 700)
方法:noise_filter
功能:应用噪声滤波器处理图像。
参数:
img
:待处理的图像数据。
主要步骤:
- 将图像数据转换为绝对值。
- 应用双边滤波器和中值滤波器进行去噪处理。
- 返回处理后的图像。
方法:spot_detector
功能:检测图像中的亮点。
参数:
img
:待处理的图像数据。
主要步骤:
- 将图像二值化,阈值为
_spot_level
。
方法:update_image
功能:定期更新图像显示。
主要步骤:
- 检查是否有新图像数据。
- 接收并处理新图像数据。
- 更新图像显示。
- 更新图像掩码。
方法:update_mask
功能:更新图像掩码。
主要步骤:
- 检查是否有新掩码数据。
- 接收并处理新掩码数据。
- 更新掩码显示。
方法:saveCurrentImage
功能:保存当前显示的图像为 PNG 文件。
主要步骤:
- 构建文件路径,包含当前时间戳。
- 保存图像数据到文件。
方法:subscribe_window
功能:打开订阅窗口,用于选择图像流。
主要步骤:
- 打开订阅窗口。
- 更新图像流订阅。
方法:subscribe_mask
功能:打开订阅窗口,用于选择掩码流。
主要步骤:
- 打开订阅窗口。
- 更新掩码流订阅。
方法:_subscribe_win
功能:创建并显示订阅窗口。
参数:
key
:订阅的键。
主要步骤:
- 创建对话框。
- 添加订阅编辑器到对话框。
- 显示对话框。
方法:configureWindow
功能:打开配置窗口,用于调整图像显示参数。
主要步骤:
- 创建对话框。
- 添加属性编辑器到对话框。
- 显示对话框。
主函数:main
功能:创建并显示 ImageDisplay
实例。
参数:
name
:窗口名称。
主要步骤:
- 创建
QApplication
实例。 - 创建
ImageDisplay
实例并设置窗口图标。 - 显示窗口。
- 启动应用事件循环。
脚本入口
功能:解析命令行参数并调用 main
函数。
主要步骤:
- 检查是否以交互模式运行。
- 解析命令行参数获取程序实例名称。
- 调用
main
函数。