เมธอด imread() ของ Imgcodecs มี overload ที่รับ flag ระบุโหมดการอ่าน:
IMREAD_COLOR - อ่านเป็น 3-channel BGR (ค่าเริ่มต้น)
IMREAD_GRAYSCALE - อ่านเป็น 1-channel Grayscale
IMREAD_UNCHANGED - อ่านตามไฟล์ต้นฉบับ
IMREAD_REDUCED_GRAYSCALE_2/4/8 - อ่านเป็น Grayscale ลดขนาด 1/2, 1/4, 1/8
IMREAD_REDUCED_COLOR_2/4/8 - อ่านเป็น BGR ลดขนาด
ตัวอย่าง 1: อ่านเป็น Grayscale
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGrayscale {
public static void main(String args[]) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
Mat img = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
Imgcodecs.imwrite("D://images//sunset_gray.jpg", img);
System.out.println("Image re-Saved");
}
}
ตัวอย่าง 2: อ่านเป็น Grayscale ลดขนาด 1/4
Mat img = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4);
Imgcodecs.imwrite("D://images//sunset_gray_small.jpg", img);
ภาพอินพุตและเอาต์พุต
ภาพจะถูกอ่านเข้ามาเป็น Grayscale โดยตรง ไม่ต้องแปลงเพิ่มเติม