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

Java OpenCV 라이브러리로 HLS와 컬러(RGB) 이미지를 상호 변환하는 방법

OpenCV에서는 Imgproc 클래스의 cvtColor() 메서드를 사용하여 이미지의 색상 공간을 다른 형식으로 손쉽게 변환할 수 있습니다. 이 메서드는 다음 세 가지 매개변수를 받습니다.

  • src – 원본(소스) 이미지를 나타내는 Matrix 객체
  • dst – 변환 결과가 저장될 대상(destination) Matrix 객체
  • code – 변환될 색상 공간의 유형을 지정하는 정수 값

HLS를 컬러 이미지로 변환하기

HLS 색상 공간의 이미지를 다시 컬러(RGB) 이미지로 변환하려면 Imgproc.COLOR_HLS2RGB 코드를 cvtColor() 메서드에 전달하면 됩니다. 반대로 컬러 이미지를 HLS로 변환할 때는 Imgproc.COLOR_RGB2HLS를 사용합니다.

예제 코드

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

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

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

      // 결과를 저장할 빈 대상 행렬 생성
      Mat dst = new Mat();

      // 이미지를 HLS 색상 공간으로 변환
      // (HLS에서 RGB로 되돌리려면 Imgproc.COLOR_HLS2RGB 사용)
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2HLS);

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

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

입력 이미지

Java OpenCV 라이브러리로 HLS와 컬러(RGB) 이미지를 상호 변환하는 방법

출력 결과

Java OpenCV 라이브러리로 HLS와 컬러(RGB) 이미지를 상호 변환하는 방법

정리

cvtColor() 메서드에 적절한 색상 변환 코드만 지정하면 RGB ↔ HLS 간 변환이 매우 간단하게 처리됩니다. HLS는 색조(Hue), 채도(Lightness/Saturation 계열), 명도 성분으로 색을 표현하는 방식으로, 특정 색상 범위를 추출하거나 조명 변화에 강건한 이미지 처리를 수행할 때 유용합니다.