더북(TheBook)

imread() 함수는 filename 영상 파일을 불러와 Mat 객체로 변환하여 반환합니다. filename 인자의 타입으로 지정된 Stringstd::string의 이름 재정의입니다. filename에 “lenna.bmp”처럼 파일 이름만 지정하면 프로그램 작업 폴더에 위치한 lenna.bmp 파일을 불러옵니다. 만약 다른 폴더의 파일을 불러오려면 절대 경로 또는 상대 경로 형식으로 파일 위치를 지정해야 합니다. 예를 들어 C 드라이브 최상위 폴더에 lenna.bmp 파일이 존재한다면 “C:\\lenna.bmp” 문자열을 filename 인자로 설정합니다. imread() 함수는 BMP, JPG, TIF, PNG와 같이 널리 사용되는 대부분의 영상 파일 형식을 지원합니다. 만약 filename으로 지정된 파일이 존재하지 않거나 잘못된 형식의 영상 파일이라면 비어 있는 Mat 객체를 반환합니다. 그러므로 imread() 함수를 사용한 후에는 Mat 클래스의 멤버 함수 Mat::empty()를 이용하여 Mat 객체가 제대로 생성되었는지를 확인하는 것이 좋습니다.

imread() 함수의 두 번째 인자 flags는 영상 파일을 불러올 때 사용할 컬러 모드와 영상 크기를 지정하는 플래그입니다. flags 인자에는 ImreadModes 열거형 상수를 지정할 수 있으며, 주로 사용되는 ImreadModes 열거형 상수와 의미를 표 2-4에 나타냈습니다. flags 인자는 기본값으로 IMREAD_COLOR가 지정되어 있기 때문에 imread() 함수 호출 시 두 번째 인자를 지정하지 않으면 자동으로 3채널 컬러 영상 형식으로 영상을 불러옵니다.

▼ 표 2-4 주요 ImreadModes 열거형 상수

ImreadModes 열거형 상수

설명

IMREAD_UNCHANGED

입력 파일에 지정된 그대로의 컬러 속성을 사용합니다. 투명한 PNG 또는 TIFF 파일의 경우, 알파 채널까지 이용하여 4채널 영상으로 불러옵니다.

IMREAD_GRAYSCALE

1채널 그레이스케일 영상으로 변환하여 불러옵니다.

IMREAD_COLOR

3채널 BGR 컬러 영상으로 변환하여 불러옵니다.

IMREAD_REDUCED_GRAYSCALE_2

크기를 1/2로 줄인 1채널 그레이스케일 영상으로 변환합니다.

IMREAD_REDUCED_COLOR_2

크기를 1/2로 줄인 3채널 BGR 영상으로 변환합니다.

IMREAD_IGNORE_ORIENTATION

EXIF에 저장된 방향 정보를 사용하지 않습니다.

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