크로마 키(Chroma Key)

크로마 키는 두개의 영상을 합성하는 기술을 말한다. 보통 녹색 또는 파란색 배경에서 촬영한 영상에 다른 배경영상을 합성한다.

한국에서는 파란색배경을 주로 사용하고, 서양에서는 초록색을 자주사용 한다고 한다. 그 이유는 서양 사람들의 눈이 파란색인 경우도 있기 때문에 블루 스크린을 사용하면 파란색의 눈이 배경영상으로 바뀌는 결과를 낳을 수 있기 때문이다.

이번 포스팅에서는 두개의 영상을 준비하여 녹색의 영역에 다른 영상을 합성하는 예제를 살펴볼 것이다.

 

첫번째 영상에서는 모니터의 화면이 녹색인 것을 확인 할 수 있다. 모니터에다가 두번째 영상을 합성하여 나타내도록 해보자.

녹색 모니터 영역 추출하기

우선 녹색 영역을 추출하여 마스크 영상을 준비할 수 있어야 한다.

VideoCapture클래스를 통해 동영상을 불러오고, 프레임 별로 inRange() 함수와 적당한 인자값을 사용하여 녹색 마스크 이미지를 추출한다.

val lowerb = Scalar(50.0, 150.0, .0)
val upperb = Scalar(80.0, 255.0, 255.0)
Core.inRange(srcHSV, lowerb, upperb, mask)

inRange 함수를 통해 추출한 마스크 이미지

이제 이 마스크를 통해 특정 영상과 합성을 하면된다. 합성 할 수 있는 방법은 많지만, 이 예제에서는 copyTo 함수를 사용했다.

Core.copyTo(videoMat, src, mask)

​예제 코드는 github를 통해 확인할 수 있다.

카테고리: OpenCV

4개의 댓글

한양 · 2022년 11월 25일 5:08 오후

크로마키 앱 개발문의드립니다

    한영 · 2022년 11월 26일 1:49 오후

    지금은 운영안하시나요?

      Charlezz · 2022년 12월 1일 11:00 오전

      어떤 부분을 말씀하시는 건지요? OpenCV 튜토리얼 이라면 제 개인적인 취미로 시간 날 때 작성하고 있습니다.

    Charlezz · 2022년 12월 1일 11:00 오전

    안녕하세요. 현재 외주 앱개발 문의는 받고 있지 않습니다. 감사합니다.

한영 에 답글 남기기 응답 취소

Avatar placeholder

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.