크로마 키(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를 통해 확인할 수 있다.

Buy me a coffeeBuy me a coffee
카테고리: AndroidOpenCV

0개의 댓글

답글 남기기

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