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

วิธีปรับคอนทราสต์ของภาพด้วย Java OpenCV

การปรับคอนทราสต์และความสว่างสามารถเขียนในสมการได้: g(i,j) = α·f(i,j) + β

  • (i,j) = ตำแหน่งพิกเซล

  • α (gain) = ควบคุมคอนทราสต์

  • β (bias) = ควบคุมความสว่าง

เมธอด convertTo() ใช้ปรับค่าเหล่านี้

α < 1 (0-1) = ลดคอนทราสต์ | α > 1 (1-100) = เพิ่มคอนทราสต์

ขั้นตอนการทำงาน

  1. โหลด OpenCV native library
  2. อ่านภาพเข้า Mat object ด้วย imread()
  3. สร้างเมทริกซ์ว่างขนาดและประเภทเดียวกัน
  4. เรียก convertTo() ส่ง alpha สำหรับคอนทราสต์, beta=0
  5. บันทึกภาพด้วย imwrite()

ตัวอย่างโค้ด

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

public class AlteringContrast {
    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        Mat src = Imgcodecs.imread("D:\\Images\\car3.jpg", Imgcodecs.IMREAD_COLOR);
        Mat dest = new Mat(src.rows(), src.cols(), src.type());
        
        // เพิ่มคอนทราสต์: alpha=10, beta=0
        src.convertTo(dest, -1, 10, 0);
        
        Imgcodecs.imwrite("D:\\Images\\contrast_result.jpg", dest);
    }
}

ผลลัพธ์สำหรับค่า alpha ต่างๆ

  • α = 0.5: คอนทราสต์ต่ำ ภาพดูจาง

  • α = 0.8: คอนทราสต์ลดลงเล็กน้อย

  • α = 1.5: คอนทราสต์เพิ่มขึ้น

  • α = 2.0: คอนทราสต์สูง ภาพชัดเจนขึ้น