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

OpenCV를 활용해 Java에서 컬러맵(Colormap) 적용하기 – applyColorMap() 완벽 가이드

이미지 처리에서 컬러맵(Color Map)은 흑백 또는 단일 채널 이미지에 색상을 입혀 시각적으로 더 잘 드러나도록 만드는 기법입니다. 데이터 시각화, 히트맵(Heatmap) 제작, 의료 영상 분석 등 다양한 분야에서 활용됩니다.

OpenCV의 Imgproc 클래스가 제공하는 applyColorMap() 메서드를 사용하면 이런 컬러맵을 단 한 줄의 코드로 이미지에 적용할 수 있습니다.

applyColorMap() 메서드의 매개변수

이 메서드는 다음 세 가지 매개변수를 받습니다.

  • src – 컬러맵을 적용할 원본 이미지(Mat 객체)
  • dst – 처리 결과를 저장할 대상 이미지(Mat 객체)
  • colormap – 적용할 컬러맵의 종류를 나타내는 정수 값

사용 가능한 컬러맵 종류

컬러맵 값으로는 아래 상수 중 하나를 전달할 수 있습니다.

COLORMAP_AUTUMN, COLORMAP_BONE, COLORMAP_COOL, COLORMAP_HOT, COLORMAP_HSV, COLORMAP_JET, COLORMAP_OCEAN, COLORMAP_PARULA, COLORMAP_PINK, COLORMAP_RAINBOW, COLORMAP_SPRING, COLORMAP_SUMMER, COLORMAP_WINTER

예제 코드

다음은 COLORMAP_PINK를 적용해 이미지의 색상을 변환하는 Java 예제입니다.

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

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

      // 파일에서 이미지를 읽어 Mat 객체에 저장
      String file = "D:\\images\\cat.jpg";
      Mat src = Imgcodecs.imread(file);

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

      // 이미지에 컬러맵 적용
      Imgproc.applyColorMap(src, dst, Imgproc.COLORMAP_PINK);

      // 결과 이미지를 파일로 저장
      Imgcodecs.imwrite("D:\\images\\color_map.jpg", dst);
      System.out.println("Image processed");
   }
}

입력 이미지

OpenCV를 활용해 Java에서 컬러맵(Colormap) 적용하기 – applyColorMap() 완벽 가이드

실행 결과

위 프로그램을 실행하면 PINK 컬러맵이 적용된 다음과 같은 결과 이미지가 생성됩니다.

OpenCV를 활용해 Java에서 컬러맵(Colormap) 적용하기 – applyColorMap() 완벽 가이드

마무리

이처럼 applyColorMap() 메서드를 활용하면 별도의 복잡한 색상 변환 로직 없이도 다양한 스타일의 컬러맵 효과를 간편하게 구현할 수 있습니다. 상수 값을 바꿔가며 여러 컬러맵을 실험해 보면 각 맵이 만들어내는 고유한 색감 차이를 직접 확인할 수 있습니다.