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

Java OpenCV로 HSV 이미지를 RGB 컬러 이미지로 변환하는 방법

HSV를 RGB 컬러 이미지로 변환하기

OpenCV의 Imgproc 클래스가 제공하는 cvtColor() 메서드는 이미지의 색상 공간을 한 형식에서 다른 형식으로 변환해 주는 기능을 합니다. 이 메서드는 다음과 같은 세 가지 매개변수를 받습니다.

  • src — 원본 이미지를 나타내는 Matrix(Mat) 객체입니다.
  • dst — 변환 결과가 저장될 대상 이미지를 나타내는 Matrix(Mat) 객체입니다.
  • code — 변환될 색상 공간의 종류를 지정하는 정수 값입니다.

HSV 이미지를 RGB 컬러 이미지로 변환하려면 이 메서드의 세 번째 매개변수로 Imgproc.COLOR_HSV2RGB를 전달하면 됩니다.

예제 코드

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class HSV2RGB {
   public static void main(String args[]) throws Exception {
      // OpenCV 핵심 네이티브 라이브러리 로드
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

      // 이미지 읽기
      Mat src = Imgcodecs.imread("D:\\images\\hsvimage.jpg");

      // 빈 대상 행렬(매트릭스) 생성
      Mat dst = new Mat();

      // HSV 이미지를 RGB로 변환
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_HSV2RGB);

      // Imgcodecs 클래스 인스턴스 생성
      Imgcodecs imageCodecs = new Imgcodecs();

      // 변환된 이미지 저장
      imageCodecs.imwrite("D:\\images\\hsv2rgb.jpg", dst);
      System.out.println("Image Saved");
   }
}

입력 이미지

Java OpenCV로 HSV 이미지를 RGB 컬러 이미지로 변환하는 방법

출력 결과

Java OpenCV로 HSV 이미지를 RGB 컬러 이미지로 변환하는 방법

코드 설명

위 예제 코드의 동작 순서는 다음과 같습니다.

  • System.loadLibrary() — OpenCV의 네이티브 라이브러리를 먼저 로드합니다. 이 과정이 없으면 OpenCV 함수를 호출할 수 없습니다.
  • Imgcodecs.imread() — 지정한 경로에서 HSV 형식의 이미지 파일을 읽어와 Mat 객체에 담습니다.
  • Imgproc.cvtColor()COLOR_HSV2RGB 코드를 사용하여 HSV 색상 공간의 이미지를 RGB 색상 공간으로 변환합니다.
  • Imgcodecs.imwrite() — 변환이 완료된 RGB 이미지를 지정한 경로에 파일로 저장합니다.

실행이 정상적으로 완료되면 콘솔에 "Image Saved"라는 메시지가 출력되고, 지정한 경로에 RGB로 변환된 컬러 이미지가 저장됩니다. 참고로 반대 방향의 변환이 필요한 경우에는 Imgproc.COLOR_RGB2HSV 코드를 사용하면 됩니다.