Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java OpenCV 라이브러리를 사용하여 이미지의 색상 공간을 변경하는 방법은 무엇입니까?


색상 공간 프로토콜을 사용하여 이미지의 색상을 표현할 수 있습니다. OpenCV에서 사용할 수 있는 몇 가지 색 공간이 있습니다. 그 중 일부는 −

  • BGR - RGB는 여기에서 가장 널리 사용되는 색 공간이며 각 픽셀은 실제로 빨강, 파랑 및 녹색의 세 가지 다른 색(강도) 값으로 구성되며 OpenCV의 기본 색 공간이지만 BGR로 저장됩니다.

  • HSV − HSV 색 공간에서는 색조, 채도 및 밝기를 변경하여 다른 색을 형성합니다.

  • CMK − 이것은 빼기 색 공간이며 흰색에서 시작하여 시안, 마젠타 및 노란색 값을 빼서 다른 색상이 형성됩니다.

  • Y'UV − Y'UV는 하나의 루마(Y')와 두 개의 색차(UV) 구성 요소로 색 공간을 정의합니다. Y'UV 컬러 모델은 다음 합성 컬러 비디오 표준에서 사용됩니다.

cvtColor()를 사용하여 이미지 표현을 한 색상 공간에서 다른 색상 공간으로 변환할 수 있습니다. org.opencv.imgproc.Imgproc 메소드 수업. 이 메서드는 소스 이미지, 대상 이미지 및 대상 이미지의 색상을 나타내는 코드를 받습니다.

색 공간을 BGR에서 HSV로 변경하려면 COLOR_BGR2HSV를 전달해야 합니다. 색상 코드 값으로. 마찬가지로 색상 공간을 BGR에서 YUV로 변경하려면 COLOR_BGR2YUV를 전달해야 합니다. 색상 코드로.

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class ChangingColorSpaces {
   public static void main(String args[]) throws Exception {
      //Loading the OpenCV core library
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
      //Reading the image
      Mat src = Imgcodecs.imread("D:\\images\\elephant.jpg");
      //Creating the empty destination matrix
      Mat dst = new Mat();
      //Converting From BGR to Gray
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2GRAY);
      HighGui.imshow("BGR to Gray", dst);
      dst = new Mat();
      //Converting From BGR to HSV
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_BGR2HSV);
      HighGui.imshow("BGR to HSV", dst);
      dst = new Mat();
      //Converting From BGR to HSV
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2YUV);
      HighGui.imshow("BGR to YUV", dst);
      HighGui.waitKey();
   }
}

입력 이미지

Java OpenCV 라이브러리를 사용하여 이미지의 색상 공간을 변경하는 방법은 무엇입니까?

출력

실행 시 위의 프로그램은 다음 창을 생성합니다. -

BGR에서 회색으로 -

Java OpenCV 라이브러리를 사용하여 이미지의 색상 공간을 변경하는 방법은 무엇입니까?

BGR에서 HSV로 -

Java OpenCV 라이브러리를 사용하여 이미지의 색상 공간을 변경하는 방법은 무엇입니까?

BGR에서 YUV로 -

Java OpenCV 라이브러리를 사용하여 이미지의 색상 공간을 변경하는 방법은 무엇입니까?