การปรับคอนทราสต์และความสว่างสามารถเขียนในสมการได้: g(i,j) = α·f(i,j) + β
(i,j) = ตำแหน่งพิกเซล
α (gain) = ควบคุมคอนทราสต์
β (bias) = ควบคุมความสว่าง
เมธอด convertTo() ใช้ปรับค่าเหล่านี้
α < 1 (0-1) = ลดคอนทราสต์ | α > 1 (1-100) = เพิ่มคอนทราสต์
ขั้นตอนการทำงาน
- โหลด OpenCV native library
- อ่านภาพเข้า Mat object ด้วย imread()
- สร้างเมทริกซ์ว่างขนาดและประเภทเดียวกัน
- เรียก convertTo() ส่ง alpha สำหรับคอนทราสต์, beta=0
- บันทึกภาพด้วย 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: คอนทราสต์สูง ภาพชัดเจนขึ้น