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)源程序代码

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

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

    Python 小白的课题报告-OpenCV 抠图项目实战(12)源程序代码 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(11)抠图算法实验平台 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能 ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(10)PyQt5 使用 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能 ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(8) 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 OpenCV ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(7) 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 OpenCV ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(6)色彩范围抠图 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(5)自适应阈值抠图 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(4)固定阈值抠图 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 ...

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

    Python 小白的课题报告-OpenCV 抠图项目实战(3)抠图综述 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 Op ...

  10. 【课题总结】OpenCV 抠图项目实战(1)目录摘要

    Python 小白的课题报告-OpenCV 抠图项目实战(1)目录摘要 本系列是 Python 小白的课题作业<基于OpenCV 的图像分割和抠图>. 需要说明的是,本系列并不能算是 Op ...

最新文章

  1. Redis安装与源码调试
  2. oracle vm virtualbox如何设置u盘启动_电脑自主U盘装机 如何设置U盘启动
  3. golang net/http 超时机制完全手册
  4. android案例一 电话拨号器
  5. 如何更新android v7 support library,新手入门之Android Support Library | Soo Smart!
  6. reduce_sum()中的reduction_indices
  7. JDK源码分析-TreeMap(1)
  8. 程序员不可能实现的6个愿望
  9. Struts学习笔记--导航
  10. 嵌入式操作系统内核原理和开发(消息队列)
  11. LEWITT莱维特STREAM4x5、DGT260声卡安装调试教程
  12. (第二天)编写训练记忆软件--数字编码矩阵V1.0
  13. 翻译Introduction+to+3D+Game+Engine+Design+Using+DirectX+9+and+CSharp
  14. HITB AMS 2021 议题分析与学习,感叹华人真多
  15. 【搞个事】主页被劫持,改注册表进行修复
  16. vue的网站用puppeteer做seo
  17. jquery 自动触发 标签的click()方法
  18. 2017年高教社杯全国大学生数学建模竞赛题目--C题 颜色与物质浓度辨识
  19. Python练习题——第九题:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n
  20. Python爬虫实战 | (1) 爬取猫眼电影官网的TOP100电影榜单

热门文章

  1. cursor设置为自定义图片
  2. maka做出好设计_MAKA:进军海报创作市场,PS小白也能做出高逼格海报
  3. mysqldb安装过程
  4. javascript感叹号1,Javascript函数前面的感叹号是用来干嘛的
  5. Redis RU101课程 Introduction to Redis Data Structures 第3周学习笔记
  6. 百度、阿里、腾讯、微软的征程:刘国栋
  7. android acfun,AcFun
  8. git 菜谱 cookbook
  9. windows录制android屏幕,如何使用Android Studio录制屏幕
  10. 关于程序猿的经典段子:杀一个程序员不需用枪,改三次需求即可