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

วิธีแปลงภาพสีเป็นสีน้ำเงิน/เขียว/แดง ด้วย Java OpenCV

เมธอด cvtColor() ของ Imgproc แปลงสีภาพ รับพารามิเตอร์ src, dst, code

หมายเหตุ: โค้ดตัวอย่างในบทความต้นฉบับมีข้อผิดพลาด ใช้ COLOR_RGB2BGR แต่คำอธิบายกล่าวถึง Grayscale โค้ดด้านล่างแก้ไขให้ถูกต้อง

ตัวอย่าง: แปลงเป็น Grayscale (ถูกต้อง)

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class ColorToGrayscale {
    public static void main(String args[]) throws Exception {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        Mat src = Imgcodecs.imread("spiderman.jpg");
        Mat dst = new Mat();
        
        // แปลงเป็น Grayscale ใช้ COLOR_RGB2GRAY
        Imgproc.cvtColor(src, dst, Imgproc.COLOR_RGB2GRAY);
        
        Imgcodecs.imwrite("grayscale.jpg", dst);
        System.out.println("Image Saved");
    }
}

รหัสสีที่น่าสนใจ

  • COLOR_RGB2GRAY - แปลงเป็นขาวดำ
  • COLOR_RGB2BGR - สลับช่องสี RGB เป็น BGR
  • COLOR_RGB2HSV, COLOR_RGB2HLS - แปลงเป็น HSV/HLS

ภาพอินพุตและเอาต์พุต

ภาพสีจะถูกแปลงเป็นภาพขาวดำ (Grayscale)