더북(TheBook)

Stitcher::create() 함수는 하나의 인자 mode를 가지지만 기본값으로 Stitcher::PANORAMA가 정의되어 있으므로 생략할 수 있습니다. 만약 스캐너 등으로 스캔한 여러 장의 영상을 이어 붙이려면 Stitcher::SCANSmode 값으로 지정합니다. Stitcher::PANORAMA 모드는 입력 영상들이 서로 투시 변환(또는 호모그래피) 관계에 있다고 가정하고, Stitcher::SCANS 모드는 입력 영상들이 서로 어파인 변환 관계라고 간주합니다. Stitcher::create() 함수를 사용하여 Stitcher 클래스 객체를 생성하려면 다음과 같이 코드를 작성합니다.

Ptr<Stitcher> stitcher = Stitcher::create();

Stitcher 객체를 생성한 후, 영상을 실제로 이어 붙이는 작업은 Stitcher::stitch() 함수가 담당합니다. Stitcher::stitch() 함수는 다수의 영상을 입력으로 받고, 이어 붙인 결과 영상을 반환합니다. Stitcher::stitch() 함수 원형은 다음과 같습니다.

Stitcher::Status Stitcher::stitch(InputArrayOfArrays images, OutputArray pano);

images

입력 영상의 벡터. vector<Mat> 타입을 사용합니다.

pano

출력 파노라마 영상

반환값

함수 동작 결과 코드. 이 값이 Stitcher::Status::OK이면 정상 동작을 의미합니다.

 

Stitcher::stitch() 함수는 images에 포함된 입력 영상에서 ORB 특징점을 찾아 서로 매칭하고 호모그래피 행렬을 계산합니다. 그리고 호모그래피 행렬을 이용하여 인접한 영상을 적절하게 투시 변환하고, 서로 이어 붙인 부분의 밝기를 적절하게 보정한 결과 영상 pano를 반환합니다. Stitcher::stitch() 함수는 정상적으로 동작하면 Stitcher::Status::OK 상수를 반환합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.