본문 바로가기
Python/OpenCV

[OpenCV] cvlib 영상 인물 얼굴 모자이크

by hotelshoe 2022. 2. 7.
반응형

이전 포스팅에서 cvlib을 활용해 이미지 속 인물들의 얼굴을 모자이크 처리하였습니다.

이번엔 영상에서 인물들의 얼굴을 모자이크 하는 테스트를 실시해 보겠습니다.

 


소스코드

import cvlib as cv
import cv2

vedio_path = '/vedio.mp4' #-- 동영상 경로 입력
#-- 웹캠 사용
webcam = cv2.VideoCapture(vedio_path) #-- 웹캠 사용시 vedio_path 대신 0 입력
 
if not webcam.isOpened():
    print("Could not open webcam")
    exit()
    
 
while webcam.isOpened():
 
    #-- 프레임 읽어들이기 
    status, frame = webcam.read()
 
    if not status:
        print("Could not read frame")
        exit()
 
    #-- detect_face 사용
    face, confidence = cv.detect_face(frame)
 
    for idx, f in enumerate(face):
        
        (startX, startY) = f[0], f[1]
        (endX, endY) = f[2], f[3]
 
        #-- 모자이크 효과 사용
        face_region = frame[startY:endY, startX:endX]
        
        B = face_region.shape[0]
        S = face_region.shape[1]
 
        face_region = cv2.resize(face_region, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_AREA)
        face_region = cv2.resize(face_region, (S, B), interpolation=cv2.INTER_AREA)
        frame[startY:endY, startX:endX] = face_region
 
    cv2.imshow("FaceMosaic", frame)

    #-- esc 입력 시 종료
    if cv2.waitKey(10) == 27:
        break
    
webcam.release()
cv2.destroyAllWindows()

테스트

뉴스 영상의 모자이크 처리 모습

아쉽게도 수어통역사분은 인식이 되질 않는 모습입니다.

 

 

다수의 사람이 지나갈 때의 인식 상태

어느정도 프레임에 얼굴이 잡혀야 인식이 되는 듯 싶습니다.

반응형

댓글