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
반응형
'Python' 카테고리의 다른 글
| 예제] 모션 캡쳐 (0) | 2022.02.05 |
|---|---|
| 예제] mediapipe 를 이용하여 손 인식 하기 (0) | 2022.01.30 |
| 예제] openCV Motion Analysis - 객체 추적 (0) | 2022.01.28 |
| 자료형 리스트, 튜플, 딕셔너리, 셋 (0) | 2022.01.27 |
| 예제] CV 이용하여 mp4 캡쳐하기 (0) | 2022.01.26 |
