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

Python 小白的课题报告—OpenCV 抠图项目实战(3)抠图综述

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


第二章 数字图像抠图技术综述

文献 [2],[3],[6]~[9] 综述了图像抠图技术的研究进展。

蓝屏抠图的技术已经非常成熟,近年来抠图问题的研究主要集中于自然图像抠图。

在自然图像抠图中,适当的人工交互是必要的。大多数抠图算法通过用户标记的三元图(Trimap)实现对对解空间的约束。三元图通过指定一部分已知的前景区域与已知的背景区域对图像进行标记,由用户涂鸦交互生成,或者由二值图像分割结果自动生成。

依据透明度遮罩计算的原理,自然图像抠图算法可分为三大类,为基于像素对优化的抠图算法、基于深度学习的抠图算法和基于传播的抠图算法。


2.1 基于采样的抠图方法

基于颜色采样的方法认为图像的局部区域是连续的,具有相似颜色的近邻像素,也具有相近的α值。

满足局部连续假设的像素在统计特征上具有相关性,通过采样未知像素周围近邻的已知前景、背景像素来估计α值。

基于采样的自然图像抠图方法有Knockout方法[10]、Ruzon-Tomasi方法[11]、Hillman方法[12]、Bayesian方法[13]等。

在这里插入图片描述

图2.1 自然图像抠图方法


基于采样的方法可以分为区域划分、颜色估计与α值估计三个步骤,先进行trimap 划分,然后求未知区域中各点的前景色成分和α值。首先从trimap标定的前景背景区域中收集一组前景色和背景色样本进行初始化;区域分割以后,对未知区域中任一点,通过邻近的前景轮廓线上的点的颜色均值修正前景色分量,类似地可得到背景色分量的修正值;最后根据得到的前景色和背景色分量以及像素点的颜色值来估计该点的α值。

Knockout方法[10]计算每个颜色通道的α分量,加权平均作为最终的α值,也称三通道加权法。该方法简单、运算速度很快,但只适用于光滑图像的抠图。

Ruzon-Tomasi方法[11]采用统计方法来估计α值,颜色估计和α值估计的计算量很大,处理速度非常慢。

Hillman等[12]提出的基于主成分分析方法,考虑前景和背景区域在颜色空间中的分布为类似于雪茄形状的长条形,使样本的协方差矩阵的非零元素主要分布在对角线附近。该方法采用投影法估计α值,计算量也很大。

Chuang等[13]提出的基于贝叶斯框架的抠图方法,将抠图问题表示为贝叶斯形式。贝叶斯方法假设前景和背景像素均服从高斯分布,先建立前景颜色的概率分布,再把未知区域的像素划分到前景或背景的不同簇中,表示当前选定的F概率有多大。贝叶斯方法忽略了全局信息,当前景和背景的颜色比较接近时抠图效果不太理想。


2.2 基于传播的抠图方法(sampling-based)

基于传播的方法认为图像的局部区域满足平滑性质,通过已知区域构建局部平滑的能量函数,从而计算得到α值,再将α值传播到未知区域中。这样可以利用临近像素的相关性以减少由于颜色采样中样本选取不当所导致的错误。

典型的基于传播的方法将图像的透明度视为图像本身的一种特性梯度场。Sun等[14]提出的泊松抠图方法,提供了一种完全不同的重编辑掩像的方式,通过修改原始图像的梯度场来达到改善抠图效果的目的。

首先把彩色图像转化为灰度图像并得到trimap;再将两条轮廓线作为初始的边界条件,在原始图像的梯度场上建立一个泊松方程,于是掩像可以通过求解该方程得到重建,称为全局泊松抠图,适用于颜色变化光滑的图像抠图。

复杂图像的掩像梯度场和原始图像梯度场相差很大,可以采用局部泊松抠图方法:先在原始图像中找出局部区域,再用滤波器平滑使其与掩像梯度场相吻合,直到重建掩像令人满意为止。

Rother等[15]提出了交互式前景提取技术GrabCut,是一种基于图切割的图像分割方法。GrabCut 算法是基于 Graph Cut 算法的改进,仅需要做很少的交互操作,就能够准确地提取出前景图像。

GrabCut 基于被分割对象的指定边界框开始,使用高斯混合模型估计被分割对象和背景的颜色分布,将图像分为被分割对象和背景两部分。只需确认前景和背景输入,该算法就可以完成前景和背景的最优分割。该算法利用图像中纹理(颜色)信息和边界(反差)信息,只要少量的用户交互操作就可得到较好的分割效果。从静态图像中提取前景物体,采用GrabCut算法是最好的选择。


2.3 基于深度学习的抠图方法

近年来,基于深度学习的自然图像抠图算法大量涌现,性能也得到了很大的提升。

一类基于深度学习的抠图算法仍然需要先验信息,称为Trimap-based方法,也称为半监督学习方法。宽泛的先验信息包括Trimap、粗糙Mask、无人的背景图像、Pose信息等。

另一类基于深度学习的抠图算法则是Trimap-free的方法,不需要提供具体图片的人工交互或先验信息。这类方法基于对大量训练数据的学习,获得自然图像抠图任务的表征信息,无需人工干预。

由于缺乏深度学习相关知识的基础,尚未深入阅读和学习该领域的文献,相关的技术综述可以参见文献[3]。


参考文献

[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
[6] 沈洋,林晓,谢志峰等.交互式前景抠图技术综述 [J].计算机辅助设计与图形学学报,2014,26(4):511-519
[7] 姚桂林,姚鸿勋.基于仿射方法的图像抠图算法综述 [J].计算机辅助设计与图形学学报,2016,28(4):677-692
[8] 李卓婷.三种典型数字图像算法的比较[D].广州:华南理工大学,2013
[9] 文向东.基于高分辨率大尺寸图像抠图方法的研究综述 [J].现代计算机,2021(5):75-80
[10] Berman A,Dardourian A,Vlahos P.Method for removing from an image the background surrounding a selected object: US 6134346 [P] .2000
[11] Ruzon M,Tomasi C.Alpha estimation in natural images [C].Proceedings of IEEE Conf. on Computer Vision and Pattern Recognition,South Carolina,2000:18-25
[12] Hillman P,Hannah J,Renshaw D.Alpha channel estimation in high resolution images and image sequences [C].Proceedings of IEEE Conf. on Computer Vision and Pattern Recognition,Hawaii,2001:1063-1068
[13] Chuang Y Y.New models and methods format ting and compositing [D].Seattle: University of Washington,2004
[14] Sun J,Jia J Y,Tang C K.Poisson matting [C].Computer Graphics Proceedings,Annual Conference Series,ACM SIGGRAPH,Los Angeles,2004 :315-321
[15] Rother C,Kolmogorov V,Blake A.Interactive foreground extraction using iterated graph cuts [C].Computer Graphics Proc.,Annual Conference Series,ACM SIGGRAPH,Los Angeles,2004 :309-314

在这里插入图片描述

【本节完】


版权声明:

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

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

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/565884.shtml

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

相关文章

随机数验证码

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

【课题总结】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;只是以此为主题的课题报告。其中包括…

IDEA 配置Tomcat

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

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

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

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

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