【课题总结】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)源程序代码


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA 配置Tomcat

在IDEA上配置本地的Tomcat服务。 1.点击右上角如图红色圆圈圈中的Add Configuration… 2. 点击号 3. 向下查找Tomcat Server, 然后选择Local (如果没有Tomcat Server 点击33more items… 就能找到了) 4. 点击Local之后(我的是已经配置过的,如果没有配…

【课题总结】OpenCV 抠图项目实战(12)源程序代码

Python 小白的课题报告—OpenCV 抠图项目实战(12)源程序代码 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是,本系列并不能算是 OpenCV 的抠图项目教程,只是以此为主题的课题报告。其中包括了一个…

【OpenCV 例程200篇】67. 空间域图像增强的综合应用

【OpenCV 例程200篇】67. 空间域图像增强的综合应用 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 5. 空间域图像增强技术的综合应用 空间域图像增强的方法很多,各有不同的特点和…

Vue 双向绑定小案例

用Vue实现双向绑定的小案例。 **双向绑定:**使用了双向绑定的两个内容一定是完全一样,同时变化(同增同减) 效果图 原始样式 删除输入框内容上面显示的文本内容随之减少 在下面输入框输入内容上面显示的内容也会增加 **注意&…

【OpenCV 例程200篇】68. 连续周期信号的傅立叶级数

【OpenCV 例程200篇】68. 连续周期信号的傅立叶级数 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 1. 频率域图像滤波 图像滤波是在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制…

Vue 跑马灯

Vue 实现跑马灯的效果。 效果图 **功能讲解&#xff1a;**当点击开始按钮&#xff0c;跑马灯效果开始进行&#xff0c;文字滚动消失和显示&#xff0c;循环滚动&#xff0c;点击停止按钮&#xff0c;文字不再滚动&#xff0c;停留在当时显示的文字页面。 代码演示 <!DOC…

【OpenCV 例程200篇】69. 连续非周期信号的傅立叶系数

【OpenCV 例程200篇】69. 连续非周期信号的傅立叶系数 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 傅里叶变换 滤波通常是指对图像中特定频率的分量进行过滤或抑制。图像滤波是在尽可能保留…

Python3.x字符串替换方法replace()、maketrans()和translate()

Python中replace()函数,类似于“查找与替换”功能 语法格式如下&#xff1a; str.replace(old, new[, max]) 其方法把字符串中的 old&#xff08;旧字符串&#xff09;&#xff0c;替换成 new(新字符串)&#xff0c;如果指定第三个参数max&#xff0c;则替换不超过 max 次&…

Vue 金额计算

使用Vue计算商品金额。 **功能分析&#xff1a;**输入商品单价和商品数量&#xff0c;设置固定的运费价格&#xff0c;直接会显示商品总价格。 效果演示 原始样式&#xff08;我设置的运费是10&#xff09; 输入商品单价和价格 代码演示 **注意&#xff1a;**引入Vue.js…

【OpenCV 例程200篇】70. 一维连续函数的傅里叶变换

【OpenCV 例程200篇】70. 一维连续函数的傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 2.1 傅里叶级数 傅里叶级数&#xff08;Fourier series&#xff09;在数论、组合数学、信号…

新版CSDN中如何快速转载别人的CSDN博客,详细方法与步骤!!!

前言 作为DSCN博客用户小萌新&#xff0c;有可能自己写的博客还不够好&#xff0c;或者当看到别人写的特别好的博客时&#xff0c;就想转载&#xff08;有些人可能会问&#xff1a;不是可以收藏吗&#xff1f;当然可以收藏&#xff0c;但是有些人也会想转载下载&#xff0c;不…

Vue 筛选

对数据进行筛选功能。 **功能分析&#xff1a;**当你输入一串文字时&#xff0c;以最快的速度筛选出相对应的内容&#xff0c;如果没有对应的内容则不予显示。 效果演示 原始样式 在输入框输入平板时筛选相应的内容 代码演示 **注意&#xff1a;**引入Vue.js架包 <!…

【OpenCV 例程200篇】71. 连续函数的取样

【OpenCV 例程200篇】71. 连续函数的取样 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 1.2 连续函数的取样 连续函数必须经过取样和量化转换为离散函数&#xff0c;才能用计算机进行处理。 …

第一个鸿蒙程序“hello world“

开发者文档: 开发者文档 运行环境要求 下载和安装DevEco Studio下载和安装Node.js 开始hello world 1.打开DevEco Studio&#xff0c;在欢迎页点击Create HarmonyOS Project&#xff0c;创建一个新工程。 2.选择设备类型和模板&#xff0c;以Wearable为例&#xff0c;选择Empty…

Vue 选项卡效果

用Vue实现选项卡效果。 效果演示 点击CSS 点击Vue 看起来是不是有点菜单导航的感觉&#xff0c;下面跟随我一起来一探究竟&#xff1f; 代码演示 **注意&#xff1a;**引入Vue.js架包 <!DOCTYPE html><html><head><meta charset"utf-8" /&…

【OpenCV 例程200篇】72. 一维离散傅里叶变换

【OpenCV 例程200篇】72. 一维离散傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 1.3 一维离散傅里叶变换 数字信号和数字图像都是采样得到的离散变量。 对原函数的变换取样后的数…

鸿蒙系统中的 JS 开发框架

今天鸿蒙终于发布了&#xff0c;开发者们也终于“沸腾”了。 源码托管在国内知名开源平台码云上&#xff0c;https://gitee.com/openharmony 我也第一时间下载了源码&#xff0c;研究了一个晚上&#xff0c;顺带写了一个 hello world 程序&#xff0c;还顺手给鸿蒙文档提了 2 个…

【OpenCV 例程200篇】73. 二维连续傅里叶变换

【OpenCV 例程200篇】73. 二维连续傅里叶变换 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 2.1 二维连续傅里叶变换 设 f(t,z)f(t,z)f(t,z) 是二维连续变量 t,zt, zt,z 的连续函数&#xff…

Vue 购物车案例

用Vue实现购物车。 程序详解&#xff1a; 页面要显示商品的基本信息&#xff08;编号&#xff0c;名称&#xff0c;单价&#xff0c;购买数量&#xff0c;总价等&#xff09; 1.增加和减少商品数量 2.商品金额会随数量变化 3.会自动计算总金额 4.对某一类商品进行移除操作 5.还…

Python入门基础篇(一)列表,详细实用,简单易懂!!!!

请仔细阅读哦&#xff01;&#xff01;&#xff01; 文章目录前言一、Python列表的创建与删除1.赋值运算符直接创建列表2.创建空列表3.创建数值列表4.删除列表二、访问列表中的元素三、遍历列表中的元素1.直接使用for循环实现2.使用for循环和enumerate()函数实现四、列表元素的…