【课题总结】OpenCV 抠图项目实战(2)抠图绪论

Python 小白的课题报告:OpenCV 抠图项目实战(2)抠图绪论

本系列是 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)源程序代码


第一章 绪论

1.1 课题的背景与意义

抠图(Image Matting)是计算图像前景透明度(α值),将图像分离为前景和背景的过程[1]。抠图是图像处理的基本操作,算法精度直接影响合成图像的质量,是图像合成与编辑的关键环节。

抠图和图像合成技术起源于光学抠图,早期主要应用于电影工业的特效制作。随着数字图像技术的发展,数字抠图与图像合成技术已经广泛应用于图像融合、自动提取、医学影像处理、目标跟踪等中层视觉任务,以及目标分类、虚拟现实、增强现实等高层视觉任务中[2],[3]。

近年来,图像抠图算法也受到如腾讯(天天P图)、百度(人像抠图、汽车分割)等互联网巨头的重视,抠图技术越来越多地应用于泛文娱、电商和垂直行业,在在线餐饮、媒体、教育等行业中拓展新的应用场景,以满足在线课程、视频制作的需求。


1.2 基本原理和方法

Porter和Duff[1]在1984年首先引入透明通道(Alpha通道)概念,提出数字抠图的前景和背景融合方程公式:

C=αF+(α)BC = \alpha F + (\alpha) B C=αF+(α)B

其中,C,F和B分别表示合成图像、前景图像和背景图像,a值称为掩像值。

Alpha通道指图像的透明度,α=1\alpha=1α=1 的像素点为前景,α=0\alpha=0α=0 的像素点为背景。

由此,抠图问题被定义为:根据原始输入图像,对图像的每一个像素点估计透明度(前背景色比例),也就是估计所有像素点的权值a 。

在这里插入图片描述

图1.1 数字抠图原理示意图

融合方程的已知量是每个像素点的颜色,未知量为前景、背景颜色和 a值。

对于灰度图像或单通道图像,每个像素点有1个方程3个未知数;对于彩色图像,每个像素点有3个方程7个未知数。

未知变量个数大于方程个数,在数学上是约束不足的问题。因此,抠图问题本质上是不可精确求解的问题,必须有附加约束才能求解抠图合成方程。

大多数抠图方法都要依赖于用户提供指导信息或者先验假设以附加约束,以获得未知变量的估计值。使用指导信息和先验假设必然使模型的泛化能力较弱,难以达到很高的预测精度。

背景已知的抠图问题称为蓝屏抠图,或色键抠图。例如,在影视制作中,经常采用蓝色或绿色幕布作为背景,前景人物在绿幕前表演。绿幕是颜色已知的单色背景,从而把未知量的个数缩减为3个,虽然未知量个数仍然大于方程个数,但仍然极大地降低了抠图问题的难度。

任意背景的抠图技术称为自然图像抠图,由于先验知识减少、未知变量增多,a值估计的难度很大。因此,在自然图像抠图中,通常需要用户指定一部分已知的前景区域(α=1\alpha=1α=1 )与已知的背景区域(α=0\alpha=0α=0 ),对图像进行标记(Trimap),以实现对问题的进一步约束。

自然图像抠图技术克服了蓝屏抠图要求纯色幕布的局限性,极大地扩大了抠图技术的应用范围,具有更加重要的理论和现实意义。


1.3 数字图像处理的应用

遥感领域普遍利用卫星图像进行资源调查、灾害检测、资源勘察、农业规划、城市规划,图像处理技术得到了广泛和深入的应用。在气象预报和太空研究领域,数字图像处理技术也发挥了重要的作用[4]。卫星图像的像素混合了大量不同物质的反射光线,像素点分离一直是研究的热点。

在医学领域中,图像处理发挥着重要的作用。图像分析可以将医学模拟图像转化为数字图像,通过计算机辅助诊断帮助医生分析医学图像,从而排除人为主观因素,提高诊断准确性和效率。

在影视领域,图像处理技术主要应用于动画制作、场景变换、特技生成、演员运动捕捉等方面;在文化传媒领域,图像处理技术应用于广告制作、文物资料照片的复制和修复、服装设计。

在公安领域,图像处理技术应用于指纹识别、人脸鉴别、图像复原、人像模拟、交通监控、事故分析。车牌自动识别、车速自动检测也大量应用数字图像处理技术。


1.4 本文的工作

本文基于 Python 语言和 OpenCV 软件,学习和实现基本的图像抠图方法。

首先,编写了固定阈值抠图和自适应阈值抠图算法程序,对绿屏背景图像进行抠图,取得了较好的效果。

其次,本文编写了HSV空间色彩区间抠图算法程序,对蓝屏图像和自然背景图像进行抠图。

然后,在学习数字图像处理的过程中,编写了边缘检测、轮廓查找和图像分割程序,为复杂抠图方法提供了技术基础[5]。

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


参考文献

[1] Porter T,Duff T.Compositing digital images [C].Computer Graphics Proceedings,Annual Conference Series,ACM SIGGRAPH,New York,1984 :253-259
[2] 林生佑,潘瑞芳,杜辉等.数字抠图技术综述[J].计算机辅助设计与图形学学报,2007,19(4):473-478
[3] 梁椅辉,黄翰,蔡邵权等.自然图像抠图技术综述[J].计算机应用研究,2021,38(5): 1294-1301
[4] 孙巍.视觉感知特性指导下的自然图像抠图算法研究[D].北京:北京交通大学,2015
[5] Gonzalez R C,Woods R E著,阮秋琦,阮宇智译.数字图像处理(第四版)[M].电子工业出版社,2020

【本节完】

在这里插入图片描述


版权声明:

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

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

Copyright 2022 youcans, XUPT

Crated:2022-01-01


欢迎关注『Python 小白从零开始 PyQt5 项目实战 @ Youcans』系列,持续更新中
欢迎关注『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/565887.shtml

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

相关文章

滑动解锁

模仿手机解锁滑动,点击向右滑动完毕即可显示解锁成功。 程序详解 1.点击和松开事件 2. 未解锁之前显示的样式和背景色 3. 解锁之后显示的样式和背景色 4. 滑动完毕后才能解锁 图片演示 原始界面 点击滑动后 解锁成功 下面我们跟随我一起来欣赏一下代码 代码…

Python中利用LSTM模型进行时间序列预测分析

时间序列模型 时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征。这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大小的值改变顺序…

【课题总结】OpenCV 抠图项目实战(3)抠图综述

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

随机数验证码

由字母和数字组成的验证码,点击验证码图片或者换一张时验证码会随机生成。 程序解读 字母和数字的组合图片和换一张文字的点击样式随机生成验证码判断是否正确正确之后弹框提示 效果演示 原始样式 点击验证码图片或者换一张字样时随机生成新的验证码 输入错误…

【课题总结】OpenCV 抠图项目实战(4)固定阈值抠图

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

数学公式验证码

给出简单的数学算法&#xff08;加减法运算&#xff09;&#xff0c;计算结果为验证码。 效果演示 原始样式 点击换一张或者点击验证码图片的时候随机生成新的数学验证码 输入错误的验证码 输入正确的验证码 代码演示 注意&#xff1a;引入两个架包 <script type&qu…

【课题总结】OpenCV 抠图项目实战(5)自适应阈值抠图

Python 小白的课题报告—OpenCV 抠图项目实战&#xff08;5&#xff09;自适应阈值抠图 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是&#xff0c;本系列并不能算是 OpenCV 的抠图项目教程&#xff0c;只是以此为主题的课题报告。其中包括了…

滑动验证

拖动滑块进行验证码的验证。 滑动验证有两种&#xff1a; 图片滑动验证长方形的滑动条验证 一 &#xff1a; 图片滑动验证 效果演示 原始样式 没有正确验证的时候滑块会直接回到初始位置让你再次滑动验证 验证成功会给出提示 看代码之前**注意&#xff1a;**代码中要引…

Feedback Prize-Kaggle比赛调研

1.比赛调研 1.1 比赛链接 Feedback Prize - Predicting Effective Arguments | Kaggle 1.2 比赛周期 5.24-8.23 1.3 比赛的快速介绍 本次比赛的目标是将学生写作中的争论元素分类为“有效”、“充分”或“无效”。您将创建一个使用代表美国 6 至 12 年级人口的数据进行训…

【课题总结】OpenCV 抠图项目实战(6)色彩范围抠图

Python 小白的课题报告—OpenCV 抠图项目实战&#xff08;6&#xff09;色彩范围抠图 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是&#xff0c;本系列并不能算是 OpenCV 的抠图项目教程&#xff0c;只是以此为主题的课题报告。其中包括了一…

点选验证码

根据图片下方文字提示点击图片验证码对应的文字完成验证。 效果演示 原始样式 点击文字错误时 点击验证成功 在欣赏代码之前**注意&#xff1a;**引入两个架包 <script type"text/javascript" src"js/jquery.min.js"></script> <scri…

【课题总结】OpenCV 抠图项目实战(7)边缘检测

Python 小白的课题报告—OpenCV 抠图项目实战&#xff08;7&#xff09; 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是&#xff0c;本系列并不能算是 OpenCV 的抠图项目教程&#xff0c;只是以此为主题的课题报告。其中包括了一个较为完整的…

一文带你了解美国运通比赛

1.比赛调研 1.1 比赛链接 American Express - Default Prediction | Kaggle 1.2 比赛周期 8.24截止 1.3 比赛的快速介绍 无论是在餐厅外出还是购买音乐会门票&#xff0c;现代生活都依靠信用卡的便利进行日常购物。它使我们免于携带大量现金&#xff0c;还可以提前全额购…

【python】Ubuntu下安装spyder及matplotlib中文显示

一、查看Ubuntu版本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy尝试用cat /etc/debian_version命令&#xff0c;竟然可以显示出来Debian的版本。 $ cat /etc/debian_version …

【课题总结】OpenCV 抠图项目实战(8)图像轮廓

Python 小白的课题报告—OpenCV 抠图项目实战&#xff08;8&#xff09; 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是&#xff0c;本系列并不能算是 OpenCV 的抠图项目教程&#xff0c;只是以此为主题的课题报告。其中包括了一个较为完整的…

SQLServer 联合查询

联合查询分为内连接和外连接两个 一&#xff1a; 外连接又分为&#xff1a;左连接、右连接、完全外连接。 1. 左连接 left join或 left outer join SQL语句&#xff1a; select * from student left join course student .IDcourse.ID语句解说&#xff1a;左外连接包含left …

H5 五子棋小游戏

用H5实现双人五子棋小游戏。 功能分解&#xff1a; 棋盘的大小自己设置白色棋子和黑色棋子的点击事件有棋子的地方不能再次放棋子判断同色棋子是否够五个够五个之后弹框显示胜利 效果演示 原始样式 选择之后开始游戏 有没有一种特别好玩的感觉呢&#xff1f;&#xff1f;…

【课题报告】OpenCV 抠图项目实战(10)PyQt5 使用

Python 小白的课题报告—OpenCV 抠图项目实战&#xff08;10&#xff09;PyQt5 使用 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是&#xff0c;本系列并不能算是 OpenCV 的抠图项目教程&#xff0c;只是以此为主题的课题报告。其中包括了一个…

IDEA 生成get和set方法

使用IDEA自动生成get和set方法。 在IDEA中使用快捷键altinsert. 图解示例 要生成get和set的页面 使用altinsert快捷键 点击Getter and Setter 全部选中 点击ok之后get和set方法就自动生成了

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

Python 小白的课题报告—OpenCV 抠图项目实战&#xff08;11&#xff09;抠图算法实验平台 本系列是 Python 小白的课题作业《基于OpenCV 的图像分割和抠图》。 需要说明的是&#xff0c;本系列并不能算是 OpenCV 的抠图项目教程&#xff0c;只是以此为主题的课题报告。其中包括…