이 글에서는 OpenCV로 불러온 이미지를 컴퓨터의 원하는 위치에 저장하는 방법을 알아보겠습니다.
OpenCV는 이미지를 지정한 파일로 저장할 수 있도록 imwrite() 함수를 제공합니다. 이때 파일 확장자가 곧 이미지 형식을 결정합니다. 예를 들어 확장자를 .jpg로 지정하면 JPEG 형식으로, .png로 지정하면 PNG 형식으로 저장됩니다.
imwrite() 함수의 기본 문법
imwrite("저장할 경로/확장자를 포함한 이미지 이름", 소스 행렬)여기서 "저장할 경로"는 이미지를 저장하고 싶은 위치를 의미합니다. 아래 예제에서는 이미지를 "lakshmi.jpg"라는 이름으로 저장하는데, 파일 이름은 원하는 대로 자유롭게 지정할 수 있습니다. "소스 행렬"은 imread() 함수로 불러온 이미지가 담겨 있는 Mat 객체를 가리킵니다. 이 프로그램에서는 이미지가 "myImage"라는 행렬에 로드되어 있습니다.
예제 코드
#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main(int argc,const char** argv) {
Mat myImage;// myImage라는 이름의 행렬 선언//
myImage = imread("lena.png");// lena.png 이미지를 행렬에 로드//
imwrite("lakshmi.jpg", myImage);// myImage를 lakshmi.jpg로 저장//
waitKey(0);// 사용자가 키를 누를 때까지 대기
destroyWindow("MyWindow");// 창을 닫고 할당된 메모리 해제//
cout << "이미지가 성공적으로 저장되었습니다...";
return 0;
}실행 결과
이미지가 성공적으로 저장되었습니다...
코드를 실행하면 lena.png로 불러온 이미지가 lakshmi.jpg라는 새 파일로 저장되며, 콘솔에 성공 메시지가 출력됩니다. 만약 지정한 경로에 쓰기 권한이 없거나 파일 형식이 지원되지 않으면 imwrite() 함수는 false를 반환하므로, 실제 프로젝트에서는 반환값을 확인해 오류를 처리하는 것이 좋습니다.