opencv背景替换加载的实现示例

 更新时间:2024年04月08日 11:23:10   作者:*  
本文主要介绍了opencv背景替换加载的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

看到有个例子,使用opencv实时替换背景,就来学习了一下,觉得挺不错的,联想到小朋友上次去科技馆的时候,小朋友特别喜欢沉浸式的恐龙世界,我觉得有点意思,就想着同时加载两段视频,一段输入作为背景,另一个输入作为自己的图像覆盖在背景上,现在用的是录屏的方法,然后摄像头加载自己的图像输入这样子,代码如下:

# -*- coding: UTF-8 -*-
import cv2
import mediapipe
from PIL import ImageGrab
import numpy as np
import cvzone
from cvzone.SelfiSegmentationModule import SelfiSegmentation

#######################
#输入图像参数
cap = cv2.VideoCapture(0)
cap.set(3, 640)
cap.set(4, 480)

segmentor = SelfiSegmentation()
#######################
#定义的变量

######################
#获取背景视频
def get_bg_video():
    img = ImageGrab.grab(bbox=(100, 100, 1280, 960)) #bbox specifies specific region (bbox= x,y,width,height)
    img_np = np.array(img)
    img_np = cv2.resize(img_np, (640, 480)) #保障图像信息的尺寸一致

    return img_np

if __name__ == "__main__":
    while True:
        is_succ, img = cap.read() #获取摄像头图像
        video = get_bg_video()
        img_out = segmentor.removeBG(img, video, threshold=0.9) #去除背景
        cv2.imshow('replace_bg', img_out)

        key = cv2.waitKey(1)
        if key == ord('q'):
            break
cap.release()
cv2.destroyAllWindows()

目前有个缺陷就是,录屏和摄像头都在一起,比较难看,后面想利用一个独立摄像头,和独立的视频来源,这样的效果会更好,当然还会有其它更好的应用场景。

到此这篇关于opencv背景替换加载的实现示例的文章就介绍到这了,更多相关opencv背景替换加载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用Python将时间或时间间隔转为ISO 8601格式方法示例

    利用Python将时间或时间间隔转为ISO 8601格式方法示例

    国际标准化组织的国际标准ISO8601是日期和时间的表示方法,全称为《数据存储和交换形式·信息交换·日期和时间的表示方法》,下面这篇文章主要给大家介绍了关于利用Python将时间或时间间隔转为ISO 8601格式的相关资料,需要的朋友可以参考下。
    2017-09-09
  • Python Pygame绘制直线实现光线反射效果

    Python Pygame绘制直线实现光线反射效果

    这篇文章主要为大家详细介绍了如何利用Python Pygame绘制直线以实现光线反射效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Python之列表实现栈的工作功能

    Python之列表实现栈的工作功能

    今天小编就为大家分享一篇关于Python之列表实现栈的工作功能,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python使用any判断一个对象是否为空的方法

    python使用any判断一个对象是否为空的方法

    这篇文章主要介绍了python使用any判断一个对象是否为空的方法,并给出了改进的方法供大家对比参考,具有一定的借鉴价值,需要的朋友可以参考下
    2014-11-11
  • Centos7 下安装最新的python3.8

    Centos7 下安装最新的python3.8

    Python 3.8是Python语言的最新版本,它适合用于编写脚本、自动化以及机器学习和Web开发等各种任务。这篇文章主要介绍了Centos7 下安装最新的python3.8,需要的朋友可以参考下
    2019-10-10
  • Flask框架信号用法实例分析

    Flask框架信号用法实例分析

    这篇文章主要介绍了Flask框架信号用法,结合实例形式分析了Blinker的安装及信号的接收等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • Python中协程用法代码详解

    Python中协程用法代码详解

    这篇文章主要介绍了Python中协程用法代码详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Python实现的排列组合计算操作示例

    Python实现的排列组合计算操作示例

    这篇文章主要介绍了Python实现的排列组合计算操作,涉及Python数学运算的相关函数与使用技巧,需要的朋友可以参考下
    2017-10-10
  • python的urllib模块显示下载进度示例

    python的urllib模块显示下载进度示例

    这篇文章主要介绍了python的urllib模块显示下载进度的示例,大家参考使用吧
    2014-01-01
  • 使用Python FastAPI构建Web服务的实现

    使用Python FastAPI构建Web服务的实现

    这篇文章主要介绍了使用Python FastAPI构建Web服务的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论