Mat 객체에 저장되어 있는 영상 데이터를 파일로 저장하기 위해서는 imwrite() 함수를 사용합니다. imwrite() 함수 원형은 다음과 같습니다.
bool imwrite(const String& filename, InputArray img, const std::vector<int>& params = std::vector<int>()); |
|
• filename |
저장할 영상 파일 이름 |
• img |
저장할 영상 데이터(Mat 객체) |
• params |
저장할 영상 파일 형식에 의존적인 파라미터(플래그 & 값) 쌍 (paramId_1, paramValue_1, paramId_2, paramValue_2, ... .) |
• 반환값 |
정상적으로 저장하면 true, 실패하면 false를 반환합니다. |
imwrite() 함수는 img 변수에 저장되어 있는 영상 데이터를 filename 이름의 파일로 저장합니다. 영상 파일 형식은 filename 문자열에 포함된 파일 확장자에 의해 결정됩니다. params 인자에는 저장할 파일 형식에 의존적인 별도의 옵션을 지정할 수 있습니다. params 인자의 형식은 std::vector<int> 타입으로 지정하며, 옵션 플래그와 실제 값을 정수 값 두 개의 쌍으로 지정해야 합니다. 예를 들어 img 변수에 저장된 영상을 lenna.jpg 파일로 저장할 때 JPEG 압축률을 95%로 지정하고 싶다면 다음과 같이 코드를 작성합니다.
vector<int> params; params.push_back(IMWRITE_JPEG_QUALITY); params.push_back(95); imwrite("lenna.jpg", img, params);
앞 코드에서 IMWRITE_JPEG_QUALITY 플래그가 JPEG 압축률을 나타내는 옵션 플래그입니다. imwrite() 함수의 params 인자에 사용할 수 있는 전체 옵션 플래그는 OpenCV 문서 사이트를 참고하기 바랍니다.