Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

อ่านภาพสีเป็น Grayscale โดยตรงด้วย Java OpenCV

เมธอด 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 โดยตรง ไม่ต้องแปลงเพิ่มเติม