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

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

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

欢迎关注『Python 小白的项目实战 @ youcans』 原创作品
Python 小白的课题报告:OpenCV 抠图项目实战(1)
Python 小白的课题报告:OpenCV 抠图项目实战(2)


第一章 绪论

1.1 课题的背景与意义

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

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

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


1.2 基本原理和方法

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

C = α F + ( α ) B C = \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 小白的课题报告:OpenCV 抠图项目实战(1)
Python 小白的课题报告:OpenCV 抠图项目实战(2)

猜你喜欢

转载自blog.csdn.net/youcans/article/details/122286816