目录

简介

  • 组成

  • 图片

  • 代码

  • 引入需要的包

  • 读取前景图

  • 读取背景图

  • 创建掩膜

  • 替换背景

  • 导出结果

  • 创建画板

  • 图像排版

  • 输出图像

  • 完整代码

  • 结语

简介

很多人羡慕电影情节中的科幻场景,其实那些都是科技生成的,这项技术就需要用到绿屏特效了(当然大家更喜欢戏称它为“5毛”特效),那么接下来我们就利用python通过20多行代码来实现一个简单的绿屏特效。这里会将一个路标的背景进行切换,实现一个简单的绿屏特效。

想要实现绿屏特效就需要对图像的组成有所了解,图像的颜色是有红绿蓝三个通道混合而成,这里我们就是利用颜色的不同来实现绿屏特效的,这种简单的绿屏特效要求前景图有明显的颜色差异(更有利于寻找严格系数),如果前景图没有明显的颜色差异那么要实现绿屏特效的难度将会较大,这里我们所做的是简单的绿屏特效,所以采用的是颜色差异较大的前景图(背景图可以随意选取)。

组成

图片

前景图(这里我们命名为:stop.jpg)

stop.jpg(前景图)

背景图(这里我们命名为:leaves.jpg)

leaves.jpg(背景图)

生成结果(这里我们命名为:out.png,图片由代码导出)

out.png

代码

引入需要的包

from skimage import io
import matplotlib.pyplot as plt
import cv2 as cv

读取前景图

stop = io.imread("stop.jpg")  # 读入stop.jpg RGB图

读取背景图

leaves = io.imread("leaves.jpg")  # 读入leaves.jpg RGB图

创建掩模

avg = cv.imread("stop.jpg", 0)  # stop的灰度图
r = stop[:, :, 0]  # stop的红色通道图
mask = r > avg * 1.4  # 获取红色占主导色位置的掩模,严格系数设置为1.4

替换背景

stop2 = io.imread("stop.jpg")  # 重新读取stop的彩图,以免修改覆盖的一个stop
h, w = stop2.shape[:2]  # 获得stop的高和宽
stop2[mask] = leaves[:h, :w][mask]  # 内容替换

导出结果

plt.savefig("out.png")

创建画板

fig, ax = plt.subplots(1, 4, figsize=(15, 4))

图像排版

ax[0].imshow(stop)
ax[1].imshow(leaves)
ax[2].imshow(mask, cmap='gray')
ax[3].imshow(stop2)plt.tight_layout()

输出图像

plt.show()

完整代码

# 引入合适的包
from skimage import io
import matplotlib.pyplot as plt
import cv2 as cv# 读取stop和leaves的彩图
stop = io.imread("stop.jpg")  # 读入stop.jpg RGB图
leaves = io.imread("leaves.jpg")  # 读入leaves.jpg RGB图# 获得stop图中需要被替代部分的位置的掩模
avg = cv.imread("stop.jpg", 0)  # stop的灰度图
r = stop[:, :, 0]  # stop的红色通道图
mask = r > avg * 1.4  # 获取红色占主导色位置的掩模,严格系数设置为1.4# 直接把月球的内容放入到猴子的需要被替代的内容对等的位置上
stop2 = io.imread("stop.jpg")  # 重新读取stop的彩图,以免修改覆盖的一个stop
h, w = stop2.shape[:2]  # 获得stop的高和宽
stop2[mask] = leaves[:h, :w][mask]  # 内容替换
# 注意, 因为图像大小不一定一致,所以要确保两个数组的结果要对等才能进行等价索引替换fig, ax = plt.subplots(1, 4, figsize=(15, 4))
ax[0].imshow(stop)
ax[1].imshow(leaves)
ax[2].imshow(mask, cmap='gray')
ax[3].imshow(stop2)plt.tight_layout()
plt.savefig("out.png")
plt.show()

结语

通过上述步骤我们实现了一个简单的录屏特效效果,小伙伴们快拿去试试吧。

期待下一个展示内容吧:

利用python实现简单的绿屏特效相关推荐

  1. python实现动态壁纸_利用Python批量提取Win10锁屏壁纸实战教程

    前言 相信使用Win10的朋友会发现,每次开机锁屏界面都会有不一样的漂亮图片,这些图片通常选自优秀的摄影作品,十分精美. 但是由于系统会自动更换这些图片,所以就算再好看的图片,也许下次开机之后就被替换 ...

  2. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

  3. 利用python发送邮件_利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...

  4. Python 散点图线性拟合_机器学习之利用Python进行简单线性回归分析

    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析.本文首先对人工智能/机器学习/深度学习.相关分析/因果分析/回归分析等易混淆的概念进行区分,最后结合案例介绍 ...

  5. python实现邮件客户端_利用python实现简单的邮件发送客户端示例

    脚本过于简单,供学习和参考.主要了解一下smtplib库的使用和超时机制的实现.使用signal.alarm实现超时机制. #!/usr/bin/env python # -*- coding: ut ...

  6. 利用python进行简单条件选股策略

    标题: 利用python进行简单条件选股策略 """ 目的是如何用python演示条件选股. 根据标的公司所处的行业进行分类,从本行业中选出高成长性.净资产收益率高.估值 ...

  7. 利用Python进行简单杜邦分析

    利用Python进行简单杜邦分析 "巧妇难为无米之炊",找不到数据,量化分析.财务报表分析也就无从谈起.对于分析者来说,获取数据是量化分析的第一步.Python的一个强大功能之一就 ...

  8. 利用 Python 实现简单的主题爬虫

    利用 Python 实现简单的主题爬虫   利用 Python 实现简单的主题爬虫,主要是通过对指定的 主题 和 网站 进行深度爬取,获取对应网页的标题和 url ,仅供学习参考. 爬取结果: 实验源 ...

  9. python做线性回归_利用python实现简单的线性回归

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 用pytho ...

最新文章

  1. word笔记之选择性粘贴-设置默认粘贴为当前格式
  2. 爱上MVC~为Html.EditorForModel自定义模版
  3. Redis概述、数据类型
  4. DCMTK:测试文件是否使用DICOM Part 10格式
  5. Spring+mongodb集群集成(吐血教程) 转自:http://blog.csdn.net/qq_16497617/article/details/52817335
  6. 使用apache的HttpClient进行http通讯,隐藏的HTTP请求头部字段是如何自动被添加的
  7. 一文带你理解如何解决工作中的需求
  8. [物理学与PDEs]第1章第6节 电磁场的标势与矢势 6.3 例 --- 电偶极辐射
  9. Spring EclipseLink NoSQL - 使用MongoDB和Oracle NoSQL DB构建
  10. 视频PPT互动问答丨数据库技术前沿的创新与实践专题
  11. Java 算法 学做菜
  12. java process 中断_从Java运行外部程序,读取输出,允许中断
  13. 洛谷p1338末日的传说(思维好题,数学)
  14. 风控算法知识——WOE值的深度理解与应用
  15. mysql 年龄计算(根据生日字段)
  16. Sql Server 数据库实验报告
  17. JCR分区 与 中科院分区的分区方法
  18. 制作芭奇站群软件自定义发布接口命令大全
  19. uniapp压缩图片
  20. 双代号网络图节点编号原则_双代号网络图的绘制原则

热门文章

  1. 重谈Zigbee的绑定问题
  2. Android应用程序------精算达人
  3. html带颜色方块,HTML5 彩色方块组合动画
  4. 《荣誉勋章:战士》卡顿低配设置心得
  5. 谷粒商城P85页面不显示
  6. Android 个人相册图片拖拽排序
  7. 微信开发api “此图片来自微信公众平台未经允许不可引用”的解决方案
  8. Jetson Orin 平台相机调试报四次“err_data” 后stream stop,其它平台工作正常
  9. 【CF1041D】 Glider
  10. bigemap地图下载器手机版标绘功能的使用