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

Java OpenCV 라이브러리를 사용하여 컬러 이미지를 그레이 스케일로 읽기.

<시간/>

imread() Imgcodecs 메서드 클래스는 파일 이름을 나타내는 문자열 값을 매개변수로 받습니다. 이 메서드는 지정된 파일의 내용을 행렬 객체로 읽어서 반환합니다. 이 방법을 사용하면 이미지의 내용을 읽을 수 있습니다.

이 외에도 Imgcodecs 클래스는 필요한 읽기 모드를 지정하는 플래그를 나타내는 정수 값을 허용하는 이 메서드의 또 다른 변형을 제공합니다.

다음은 Imgcodecs의 다양한 필드입니다. 플래그 값으로 사용할 수 있는 클래스입니다.

  • IMREAD_COLOR − 플래그가 이 값으로 설정되면 로드된 이미지가 3채널 BGR(Blue Green Red) 컬러 이미지로 변환됩니다.

  • IMREAD_GRAYSCALE − 플래그가 이 값으로 설정되면 로드된 이미지가 단일 채널 회색조 이미지로 변환됩니다.

  • IMREAD_LOAD_GDAL − 플래그가 이 값으로 설정되면 GDAL 드라이버를 사용하여 이미지를 로드할 수 있습니다.

  • IMREAD_ANYCOLOR − 플래그가 이 값으로 설정되면 이미지를 가능한 모든 색상 형식으로 읽습니다.

  • IMREAD_REDUCED_COLOR_2 또는,
    IMREAD_REDUCED_COLOR_4 또는,
    IMREAD_REDUCED_COLOR_8
    − 플래그가 이 값으로 설정되면 이미지는 3채널 BGR로 읽혀지며 이미지의 크기는 사용된 필드에 대해 이미지 원본 크기의 1/2, 1/4 또는 1/8로 줄어듭니다.

  • IMREAD_REDUCED_GRAYSCALE_2 또는,
    IMREAD_REDUCED_GRAYSCALE_4 또는,
    IMREAD_REDUCED_GRAYSCALE_8
    − 플래그가 이 값으로 설정되면 이미지는 단일 채널 회색조 이미지로 읽혀지며 이미지 크기는 사용된 필드에 대해 이미지 원본 크기의 1/2, 1/4 또는 1/8로 줄어듭니다.

  • IMREAD_UNCHANGED − 플래그가 이 값으로 설정되면 로드된 이미지를 그대로 반환합니다.

따라서 컬러 이미지를 그레이스케일 이미지로 읽어야 하는 경우 IMREAD_GRAYSCALE 또는 IMREAD_REDUCED_GRAYSCALE_X를 매개변수로 전달해야 합니다.

예시 1

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGreyScale {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}

입력

Java OpenCV 라이브러리를 사용하여 컬러 이미지를 그레이 스케일로 읽기.

출력

Java OpenCV 라이브러리를 사용하여 컬러 이미지를 그레이 스케일로 읽기.

예시 2

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadingAsGrey2 {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      String input = "D://images//sunset.jpg";
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread(input, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4 );
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}

출력

Java OpenCV 라이브러리를 사용하여 컬러 이미지를 그레이 스케일로 읽기.