Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java OpenCV 라이브러리로 이미지를 저장하는 방법 완벽 정리

OpenCV 라이브러리를 활용하면 이미지 필터링, 기하학적 변환, 색상 공간 변환, 히스토그램 분석 등 다양한 이미지 처리 작업을 손쉽게 수행할 수 있습니다. 이번 글에서는 그중에서도 이미지를 파일로 저장(작성)하는 방법을 Java 예제와 함께 자세히 알아보겠습니다.

이미지 작성(저장)이란?

OpenCV에서 Imgcodecs 클래스의 imread() 메서드를 사용해 이미지를 읽어오면, 그 결과는 Mat(Matrix) 객체에 저장됩니다. 이렇게 메모리에 로드된 이미지 데이터는 imwrite() 메서드를 통해 원하는 경로에 파일로 저장할 수 있습니다.

imwrite() 메서드의 매개변수

imwrite() 메서드는 두 개의 매개변수를 받습니다.

  • File – 저장 결과물이 기록될 파일 경로를 나타내는 문자열 값입니다.
  • Img – 저장하고자 하는 이미지 데이터가 담겨 있는 Mat 객체입니다.

Java 예제 코드

다음 Java 예제는 cat.jpg 이미지를 읽어온 뒤, 다른 이름으로 다시 저장하는 과정을 보여줍니다.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class WritingImages {
    public static void main(String args[]) {
        // OpenCV 핵심 네이티브 라이브러리 로드
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        // 파일에서 이미지를 읽어 Mat 객체에 저장
        String file = "D://images//cat.jpg";
        Mat matrix = Imgcodecs.imread(file);
        System.out.println("Image Loaded");
        // 새로운 경로에 이미지 저장
        String file2 = "D://images//sample_resaved.jpg";
        Imgcodecs.imwrite(file2, matrix);
        System.out.println("Image Saved");
    }
}

실행 결과

입력 이미지: cat.jpg

Java OpenCV 라이브러리로 이미지를 저장하는 방법 완벽 정리

출력 이미지: sample_resaved.jpg

Java OpenCV 라이브러리로 이미지를 저장하는 방법 완벽 정리

정리

OpenCV의 Java 인터페이스에서는 Imgcodecs.imread()로 이미지를 Mat 객체로 불러온 후, Imgcodecs.imwrite()에 저장할 경로와 Mat 객체를 전달하는 것만으로 간단하게 이미지를 파일로 저장할 수 있습니다. 이 기본 흐름은 이미지 변환, 필터링 등 다양한 처리 결과를 파일로 내보낼 때도 동일하게 활용되므로 꼭 기억해 두시기 바랍니다.