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"); } }
입력
출력
예시 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"); } }
출력