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

Java OpenCV 라이브러리로 RGB 이미지를 HSV 색상 공간으로 변환하는 방법

OpenCV의 Imgproc 클래스가 제공하는 cvtColor() 메서드를 사용하면 이미지의 색상 공간을 손쉽게 변환할 수 있습니다. 이 메서드는 다음과 같은 세 가지 매개변수를 받습니다.

  • src − 변환할 원본 이미지를 나타내는 Mat 객체입니다.

  • dst − 변환된 결과 이미지를 저장할 대상 Mat 객체입니다.

  • code − 적용할 색상 변환 방식을 지정하는 정수 값입니다.

RGB 이미지를 HSV 색상 공간으로 변환하려면 세 번째 매개변수에 Imgproc.COLOR_RGB2HSV를 전달하면 됩니다.

예제 코드

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

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

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

        // 결과를 저장할 빈 Mat 객체 생성
        Mat dst = new Mat();

        // RGB를 HSV 색상 공간으로 변환
        Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2HSV);

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

        // 변환된 이미지 저장
        imageCodecs.imwrite("D:\\images\\colorTOhsv.jpg", dst);

        System.out.println("Image Saved");
    }
}

입력 이미지

Java OpenCV 라이브러리로 RGB 이미지를 HSV 색상 공간으로 변환하는 방법

출력 이미지

Java OpenCV 라이브러리로 RGB 이미지를 HSV 색상 공간으로 변환하는 방법

코드 설명

위 예제는 다음 순서로 동작합니다.

  1. 네이티브 라이브러리 로드System.loadLibrary()를 호출하여 OpenCV의 네이티브 라이브러리를 먼저 로드해야 합니다. 이 과정이 없으면 OpenCV 관련 기능을 사용할 수 없습니다.

  2. 이미지 불러오기Imgcodecs.imread() 메서드로 지정된 경로의 이미지 파일을 Mat 객체로 읽어옵니다.

  3. 색상 공간 변환Imgproc.cvtColor() 메서드에 원본 Mat, 대상 Mat, 그리고 Imgproc.COLOR_RGB2HSV 코드를 전달하여 RGB 이미지를 HSV로 변환합니다.

  4. 결과 저장imwrite() 메서드를 통해 변환된 HSV 이미지를 지정한 경로에 파일로 저장합니다.

참고 사항

HSV(Hue, Saturation, Value) 색상 공간은 색조, 채도, 명도를 기준으로 색상을 표현하기 때문에 특정 색상 영역을 추출하거나 객체를 감지하는 등의 이미지 처리 작업에서 RGB보다 유용하게 활용됩니다. 만약 입력 이미지가 BGR 형식이라면 Imgproc.COLOR_BGR2HSV 코드를 사용하는 것이 좋습니다.