图像监视器

该代码实现了一个基于 PyQt6 的图像监控器应用,名为 ImageDisplay。这个应用能够接收并实时显示图像数据,并提供多种工具来调整和保存图像。用户可以通过该应用监控图像流,应用滤波器,调整显示参数,并保存当前图像。

功能介绍

该代码实现了一个基于 PyQt6 的图像监控器应用,名为 ImageDisplay。这个应用能够接收并实时显示图像数据,并提供多种工具来调整和保存图像。用户可以通过该应用监控图像流,应用滤波器,调整显示参数,并保存当前图像。

代码结构

  • 导入必要的模块和库
  • 定义 ImageDisplay
  • 定义主函数 main
  • 定义脚本入口

类:ImageDisplay

简短功能介绍

ImageDisplay 类是一个自更新的图像显示窗口,能够实时接收和显示图像数据,并提供多种工具和设置来调整图像显示效果。

方法:__init__

功能:初始化 ImageDisplay 对象,并设置窗口名称和父对象。

参数

  • name:窗口名称。
  • parent:父对象(可选)。

主要步骤

  1. 初始化属性字段。
  2. 创建并设置图像显示区域。
  3. 订阅图像流和掩码流。
  4. 设置图像显示和掩码显示的初始数据。
  5. 创建图像显示窗口和控件布局。
  6. 启动定时器以定期更新图像。

方法:sizeHint

功能:返回窗口的推荐大小。

返回值QtCore.QSize(800, 700)

方法:noise_filter

功能:应用噪声滤波器处理图像。

参数

  • img:待处理的图像数据。

主要步骤

  1. 将图像数据转换为绝对值。
  2. 应用双边滤波器和中值滤波器进行去噪处理。
  3. 返回处理后的图像。

方法:spot_detector

功能:检测图像中的亮点。

参数

  • img:待处理的图像数据。

主要步骤

  1. 将图像二值化,阈值为 _spot_level

方法:update_image

功能:定期更新图像显示。

主要步骤

  1. 检查是否有新图像数据。
  2. 接收并处理新图像数据。
  3. 更新图像显示。
  4. 更新图像掩码。

方法:update_mask

功能:更新图像掩码。

主要步骤

  1. 检查是否有新掩码数据。
  2. 接收并处理新掩码数据。
  3. 更新掩码显示。

方法:saveCurrentImage

功能:保存当前显示的图像为 PNG 文件。

主要步骤

  1. 构建文件路径,包含当前时间戳。
  2. 保存图像数据到文件。

方法:subscribe_window

功能:打开订阅窗口,用于选择图像流。

主要步骤

  1. 打开订阅窗口。
  2. 更新图像流订阅。

方法:subscribe_mask

功能:打开订阅窗口,用于选择掩码流。

主要步骤

  1. 打开订阅窗口。
  2. 更新掩码流订阅。

方法:_subscribe_win

功能:创建并显示订阅窗口。

参数

  • key:订阅的键。

主要步骤

  1. 创建对话框。
  2. 添加订阅编辑器到对话框。
  3. 显示对话框。

方法:configureWindow

功能:打开配置窗口,用于调整图像显示参数。

主要步骤

  1. 创建对话框。
  2. 添加属性编辑器到对话框。
  3. 显示对话框。

主函数:main

功能:创建并显示 ImageDisplay 实例。

参数

  • name:窗口名称。

主要步骤

  1. 创建 QApplication 实例。
  2. 创建 ImageDisplay 实例并设置窗口图标。
  3. 显示窗口。
  4. 启动应用事件循环。

脚本入口

功能:解析命令行参数并调用 main 函数。

主要步骤

  1. 检查是否以交互模式运行。
  2. 解析命令行参数获取程序实例名称。
  3. 调用 main 函数。