opencv背景替換加載的實(shí)現(xiàn)示例
看到有個(gè)例子,使用opencv實(shí)時(shí)替換背景,就來學(xué)習(xí)了一下,覺得挺不錯(cuò)的,聯(lián)想到小朋友上次去科技館的時(shí)候,小朋友特別喜歡沉浸式的恐龍世界,我覺得有點(diǎn)意思,就想著同時(shí)加載兩段視頻,一段輸入作為背景,另一個(gè)輸入作為自己的圖像覆蓋在背景上,現(xiàn)在用的是錄屏的方法,然后攝像頭加載自己的圖像輸入這樣子,代碼如下:
# -*- coding: UTF-8 -*-
import cv2
import mediapipe
from PIL import ImageGrab
import numpy as np
import cvzone
from cvzone.SelfiSegmentationModule import SelfiSegmentation
#######################
#輸入圖像參數(shù)
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()
目前有個(gè)缺陷就是,錄屏和攝像頭都在一起,比較難看,后面想利用一個(gè)獨(dú)立攝像頭,和獨(dú)立的視頻來源,這樣的效果會(huì)更好,當(dāng)然還會(huì)有其它更好的應(yīng)用場(chǎng)景。
到此這篇關(guān)于opencv背景替換加載的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)opencv背景替換加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3利用Dlib實(shí)現(xiàn)攝像頭實(shí)時(shí)人臉檢測(cè)和平鋪顯示示例
這篇文章主要介紹了Python3利用Dlib實(shí)現(xiàn)攝像頭實(shí)時(shí)人臉檢測(cè)和平鋪顯示示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02
pandas滑動(dòng)窗口學(xué)習(xí)筆記(shift, diff, pct_change)
pandas中有3類窗口,分別是滑動(dòng)窗口rolling?、擴(kuò)張窗口expanding以及指數(shù)加權(quán)窗口ewm,下面就來詳細(xì)的介紹一下這三種的用法,感興趣的可以了解一下2024-03-03
python中計(jì)算一個(gè)列表中連續(xù)相同的元素個(gè)數(shù)方法
今天小編就為大家分享一篇python中計(jì)算一個(gè)列表中連續(xù)相同的元素個(gè)數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06

