더북(TheBook)

3.2.1 Mat 클래스 개요

OpenCV 라이브러리에서 가장 많이 사용하는 클래스는 단연 행렬을 표현하는 Mat 클래스입니다. Mat 클래스는 일반적인 2차원 행렬뿐만 아니라 고차원 행렬을 표현할 수 있으며, 한 개 이상의 채널(channel)을 가질 수 있습니다. Mat 클래스에는 정수, 실수, 복소수 등으로 구성된 행렬 또는 벡터(vector)를 저장할 수 있고, 그레이스케일 또는 컬러 영상을 저장할 수도 있습니다. 경우에 따라서는 벡터 필드(vector field), 포인트 클라우드(point cloud), 텐서(tensor), 히스토그램(histogram) 등 정보를 저장하는 용도로 사용됩니다. 그러나 실제적으로는 2차원 영상 데이터를 저장하고 처리하는 용도로 가장 많이 사용되고 있습니다. 그러므로 OpenCV 라이브러리를 이용하여 컴퓨터 비전 프로그램을 개발하기 위해서는 Mat 클래스 사용법을 제대로 익히는 것이 중요합니다.

Mat 클래스는 <opencv-src>\modules\core\include\opencv2\core\mat.hpp 파일에 정의되어 있습니다. 여기서 <opencv-src>는 OpenCV 소스 코드가 있는 폴더 위치를 의미합니다.3 Mat 클래스가 정의된 헤더 파일을 찾아서 코드를 분석하는 작업은 분명히 의미가 있는 일이지만, Mat 클래스 전체를 분석하는 작업은 매우 복잡하며 꽤 오랜 시간이 필요할 수도 있습니다. 그러므로 여기서는 간략화한 Mat 클래스 정의를 확인하겠습니다. 코드 3-6은 Mat 클래스 전체 정의에서 중요한 부분만 선별하여 나타낸 것입니다.

 

3 2장에서 설명한 OpenCV 설치 방법을 따른 경우 <opencv-src>는 C:\opencv\sources 폴더를 나타냅니다.

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