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

วิธีปรับความสว่างของภาพด้วย Java OpenCV

เมธอด convertTo() ของ org.opencv.core.Mat ใช้ปรับความสว่างและคอนทราสต์ รับ 4 พารามิเตอร์:

  • mat - เมทริกซ์ปลายทางขนาดและประเภทเดียวกับต้นฉบับ

  • rtype - ประเภทเมทริกซ์ผลลัพธ์ (-1 = เหมือนต้นฉบับ)

  • alpha - ค่า gain (ค่าเริ่มต้น 1 ต้อง > 0)

  • beta - ค่า bias (ค่าเริ่มต้น 0)

beta เป็นลบ (0 ถึง -255) = ลดความสว่าง | beta เป็นบวก (0 ถึง 255) = เพิ่มความสว่าง

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

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

public class AlteringBrightness {
    public static void main(String[] args) {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        
        String file = "D:\\Images\\tiger.jpg";
        Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR);
        Mat dest = new Mat(src.rows(), src.cols(), src.type());
        
        // เพิ่มความสว่าง: alpha=1, beta=100
        src.convertTo(dest, -1, 1, 100);
        
        Imgcodecs.imwrite("D:\\Images\\brightness_result.jpg", dest);
    }
}

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

  • β = -100: ภาพมืดลงอย่างชัดเจน

  • β = -50: ภาพมืดลงปานกลาง

  • β = 50: ภาพสว่างขึ้นปานกลาง

  • β = 100: ภาพสว่างขึ้นอย่างชัดเจน