opencv+python实时替换摄像头捕捉到的视频的背景

通过OpenCV和Python实现,该方法能够实时地将摄像头捕获视频中的背景替换为预设图像。关键在于设定背景颜色的RGB值范围,并确保在不同光照条件下仍能准确识别。用户需提供一张新的背景图片并调整颜色阈值以适应不同环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题,使用opencv+python实时替换摄像头捕捉到的视频的背景。

代码如下:

# -*- coding: utf-8 -*-
"""
视频背景替换
"""
from PIL import Image
import numpy as np
import cv2

cap = cv2.VideoCapture(0)
cap.set(5,10)

# 要替换的背景
img_back=cv2.imread('img_back.jpg')


while True:
    ret,frame = cap.read()
    if ret == False:
        continue
    #获取图片的尺寸
    rows, cols, channels = frame.shape

    lower_color = np.array([120, 120, 120])
    upper_color = np.array([250, 250, 250])
    # 创建掩图
    fgmask = cv2.inRange(frame, lower_color, upper_color)
    cv2.imshow('Mask', fgmask)

    # 腐蚀膨胀
    erode = cv2.erode(fgmask, None, iterations=1)
    cv2.imshow('erode', erode)
    dilate = cv2.dilate(erode, None, iterations=1)
    cv2.imshow('dilate', dilate)

    rows, cols = dilate.shape
    img_back=img_back[0:rows,0:cols]
    print(img_back)
    # #根据掩图和原图进行抠图
    img2_fg = cv2.bitwise_and(img_back, img_back, mask=dilate)
    Mask_inv = cv2.bitwise_not(dilate)
    img3_fg
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值