【课题总结】OpenCV 抠图项目实战(11)算法实验平台

Python 小白的课题报告—OpenCV 抠图项目实战(11)抠图算法实验平台

本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。
需要说明的是,本系列并不能算是 OpenCV 的抠图项目教程,只是以此为主题的课题报告。其中包括了一个较为完整的 PyQt 项目。
从学生课题作业报告的角度,还是可以晒出来给大家参考的。

欢迎关注『Python 小白的项目实战 @ youcans』 原创作品
Python 小白的课题报告—OpenCV 抠图项目实战(1)目录摘要
Python 小白的课题报告—OpenCV 抠图项目实战(2)抠图绪论
Python 小白的课题报告—OpenCV 抠图项目实战(3)抠图综述
Python 小白的课题报告—OpenCV 抠图项目实战(4)固定阈值抠图
Python 小白的课题报告—OpenCV 抠图项目实战(5)自适应阈值抠图
Python 小白的课题报告—OpenCV 抠图项目实战(6)色彩范围抠图
Python 小白的课题报告—OpenCV 抠图项目实战(7)边缘检测
Python 小白的课题报告—OpenCV 抠图项目实战(8)图像轮廓
Python 小白的课题报告—OpenCV 抠图项目实战(9)评价指标
Python 小白的课题报告—OpenCV 抠图项目实战(10)PyQt5 使用
Python 小白的课题报告—OpenCV 抠图项目实战(11)算法实验平台
Python 小白的课题报告—OpenCV 抠图项目实战(12)源程序代码


第六章 基于 PyQt5 的抠图算法实验平台


6.2 抠图算法实验平台的设计与实现

基于 PyQt5 开发一个抠图算法实验平台软件,该平台也是数字图像处理仿真平台软件的组成部分。


6.2.1 抠图算法实验平台的设计方案

抠图算法实验平台由主界面和若干个子界面构成,采取自顶向下的设计方法,包括以下功能模块:

  • 文件处理模块:导入、导出数据文件和图像;
  • 算法选择模块:选择不同的抠图算法;
  • 算法实现模块:实现不同的抠图算法;
  • 系统模块:系统设置,帮助和退出。

每个子界面相互独立,分别实现一种抠图算法。本实验平台目前已经实现固定阈值抠图、自适应阈值抠图、HSV颜色范围抠图、边缘检测、轮廓查找、图像分割等功能。在该平台上,可以方便地添加新的算法。

实验平台的设计框图如下图所示。

在这里插入图片描述

图6.7 抠图算法实验平台的设计抠图


6.2.2 抠图算法实验平台的UI设计

抠图算法实验平台的UI实现步骤如下:

1. 使用QT Designer设计图形界面,生成 .ui 文件
(1)如图8所示,创建主窗口 “MainWindow”,新建菜单栏和工具栏。
向菜单栏和工具栏添加动作对象:“打开”、“保存”、“关闭”、“设置”、“帮助”、“退出”。

(2)如图9所示,在主窗口的左侧创建两个容器布局。

  • 左侧上部容器为垂直布局的按钮控件区域 leftLayout_1,设有多个按钮控件,用于选择不同的业务;
  • 左侧下部容器为垂直布局的文本区域 leftLayout_2,设有单行和多行文本编辑框,用于在运行中显示提示信息。

(3)将图形窗口右侧的主体区域设计为多窗口切换的堆叠布局 “Stacked Widget”,用于设计多个切换界面,以适应不同的业务场景。

  • 在控件的右上角显示有一对黑色三角符号,可以在多个页面之间切换,也可以在 “对象查看器” 中选择要编辑的页面。
    堆叠布局 “Stacked Widget” 中各页面的设计,具体设计内容是根据业务需要确定的。
  • page_0 的设计:如图10所示,标签控件label用于显示封面图片,按钮控件 pushButton 用于控制翻页或自定义动作。
  • page_1 的设计:如图11所示,上方标签控件 label_1、label_2 用于显示主要图像,下方标签控件 label_3~6用于显示次要图像,次要图像下方设有按钮控件,可以放大浏览对应的图像,也可以定义为其它功能。
  • page_2 的设计:预留设计窗口,可以按照业务场景进行设计布局。

(4)如图12所示,建立信号与槽函数的连接:

  • 对菜单栏和工具栏动作对象建立信号与槽函数连接,如:动作actionQuit触发控件MainWindow 的内置函数close(),动作actionOpen 触发自定义槽函数trigger_actOpen();
  • 对左侧按钮控件区域的算法选择按钮建立信号与槽函数的连接。槽函数是对应的算法程序,如click_pushButton_1(self) 为固定阈值抠图算法子程序。
  • 对堆叠布局中的控件建立信号与槽函数的连接。

2. 使用PyUIC 将设计界面.ui文件转换为.py文件,以便 Python 主程序调用。

在数字图像处理仿真平台软件中也使用了类似的GUI结构框架。但由于数字图像处理内容很多,采用章节结构进行算法选择。如图 13所示,按钮控件区域使用树结构控件 “treeWidget” 实现目录结构的折叠侧边栏。

在这里插入图片描述
图6.8 创建主窗口、菜单栏和工具栏
图6.9 创建容器布局和选择按钮

在这里插入图片描述
图6.10 创建堆叠布局和切换窗口
图6.11 窗口控件的设计和实现

在这里插入图片描述
图6.12 建立信号与槽函数的连接
图6.13 数字图像处理仿真平台的用户界面


【本节完】


版权声明:
本节内容,主要来自:Image Matting 客观评价指标、数据集及主观评价(https://blog.csdn.net/Mao_Jonah/article/details/113646709)

欢迎关注『Python 小白的项目实战 @ youcans』 原创作品

原创作品,转载必须标注原文链接:https://blog.csdn.net/youcans/article/details/122390351

Copyright 2022 youcans, XUPT

Crated:2022-01-09


欢迎关注『Python 小白的项目实战 @ youcans』 原创作品
Python 小白的课题报告—OpenCV 抠图项目实战(1)目录摘要
Python 小白的课题报告—OpenCV 抠图项目实战(2)抠图绪论
Python 小白的课题报告—OpenCV 抠图项目实战(3)抠图综述
Python 小白的课题报告—OpenCV 抠图项目实战(4)固定阈值抠图
Python 小白的课题报告—OpenCV 抠图项目实战(5)自适应阈值抠图
Python 小白的课题报告—OpenCV 抠图项目实战(6)色彩范围抠图
Python 小白的课题报告—OpenCV 抠图项目实战(7)边缘检测
Python 小白的课题报告—OpenCV 抠图项目实战(8)图像轮廓
Python 小白的课题报告—OpenCV 抠图项目实战(9)评价指标
Python 小白的课题报告—OpenCV 抠图项目实战(10)PyQt5 使用
Python 小白的课题报告—OpenCV 抠图项目实战(11)算法实验平台
Python 小白的课题报告—OpenCV 抠图项目实战(12)源程序代码


Guess you like

Origin blog.csdn.net/youcans/article/details/122390351