Python / / 2022. 1. 29. 14:36

예제] openCV 실시간 영상 배경 교체 - cvzone

728x90
반응형

영상에서 앞에 인물을 제외한 뒷배경을 삭제하고 다른 이미지로 변경하도록 해준다.

중요 : cv2, cvzone, mediapipe 설치되어 있어야 한다.

 

 아래 이미지 처럼 앞에 사람과 뒤에 배경을 분리하고 배경에 다른 이미지를 넣도록 한다.

아래 MidiaPipe 에서 캡쳐한것이다.

https://google.github.io/mediapipe/solutions/selfie_segmentation.html

 

import cv2
import cvzone
from cvzone.SelfiSegmentationModule import SelfiSegmentation
import os

# 카메라로 부터 영상촬영
cap = cv2.VideoCapture(0)

#세그멘테이션 class
segment = SelfiSegmentation()

# 배경이미지
imgBG = cv2.imread("backimg1.jpg")

while True:
	#영상 촬영
    ret, img = cap.read()
    #좌우 반전
    img =  cv2.flip(img, 1)    
    #배경 삭제하고 이미지 넣기
    backOut = segment.removeBG(img, imgBG, threshold=0.1 )
    #이미지 보여주기
    #cv2.imshow("CAM", img)
    cv2.imshow('back remove', backOut)
	# esc 키 누르면 빠져 나오기
    key = cv2.waitKey(20)
    if key == 27:
        break

cv2.destroyAllWindows

배경에 따라 경계선이 잘 분리되는것 같다.

배경이미지는 영상 크기에 맞춰 크기를 맞춰주는게 좋다.

 

 

 

 

 

참조 : https://github.com/cvzone/cvzone

https://www.youtube.com/watch?v=k7cVPGpnels&t=0s 

 

 

728x90
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유