크로마 키(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)
이제 이 마스크를 통해 특정 영상과 합성을 하면된다. 합성 할 수 있는 방법은 많지만, 이 예제에서는 copyTo 함수를 사용했다.
Core.copyTo(videoMat, src, mask)
예제 코드는 github를 통해 확인할 수 있다.
4개의 댓글
한양 · 2022년 11월 25일 5:08 오후
크로마키 앱 개발문의드립니다
한영 · 2022년 11월 26일 1:49 오후
지금은 운영안하시나요?
Charlezz · 2022년 12월 1일 11:00 오전
어떤 부분을 말씀하시는 건지요? OpenCV 튜토리얼 이라면 제 개인적인 취미로 시간 날 때 작성하고 있습니다.
Charlezz · 2022년 12월 1일 11:00 오전
안녕하세요. 현재 외주 앱개발 문의는 받고 있지 않습니다. 감사합니다.