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");
}
}입력 이미지

출력 결과

코드 설명
위 예제 코드의 동작 순서는 다음과 같습니다.
- System.loadLibrary() — OpenCV의 네이티브 라이브러리를 먼저 로드합니다. 이 과정이 없으면 OpenCV 함수를 호출할 수 없습니다.
- Imgcodecs.imread() — 지정한 경로에서 HSV 형식의 이미지 파일을 읽어와 Mat 객체에 담습니다.
- Imgproc.cvtColor() — COLOR_HSV2RGB 코드를 사용하여 HSV 색상 공간의 이미지를 RGB 색상 공간으로 변환합니다.
- Imgcodecs.imwrite() — 변환이 완료된 RGB 이미지를 지정한 경로에 파일로 저장합니다.
실행이 정상적으로 완료되면 콘솔에 "Image Saved"라는 메시지가 출력되고, 지정한 경로에 RGB로 변환된 컬러 이미지가 저장됩니다. 참고로 반대 방향의 변환이 필요한 경우에는 Imgproc.COLOR_RGB2HSV 코드를 사용하면 됩니다.