Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 OpenCV 이미지를 파일로 저장하는 방법

이 글에서는 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를 반환하므로, 실제 프로젝트에서는 반환값을 확인해 오류를 처리하는 것이 좋습니다.