เมธอด 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: ภาพสว่างขึ้นอย่างชัดเจน