convertTo () phương thức của org.opencv.core.Mat lớp thực hiện các phép tính cần thiết trên ma trận đã cho để thay đổi độ tương phản và độ sáng của hình ảnh. Phương thức này chấp nhận 4 tham số -
-
thảm - Ma trận trống để chứa kết quả có cùng kích thước và kiểu với ma trận nguồn.
-
rtype - giá trị số nguyên xác định kiểu của ma trận đầu ra. Nếu giá trị này là âm, loại sẽ giống với nguồn.
-
alpha - Giá trị tăng, phải lớn hơn 0 (giá trị mặc định 1).
-
beta - Giá trị thiên vị (giá trị mặc định 0).
Thay đổi độ sáng của hình ảnh bằng thư viện OpenCV Java
Như đã đề cập, giá trị beta được truyền cho phương pháp này làm thay đổi độ sáng của hình ảnh động, nếu giá trị được chọn cho tham số này là giá trị âm (0 đến -255) thì độ sáng của hình ảnh sẽ giảm. Tương tự, nếu nó lớn hơn 0 (0 đến 255) thì độ sáng của hình ảnh sẽ được tăng lên.
Để thay đổi độ tương phản của hình ảnh, hãy gọi convertTo () bằng cách chuyển ma trận trống, -1 (để có cùng loại), 1 dưới dạng giá trị alpha và, giá trị beta để tăng hoặc giảm độ sáng.
Ví dụ
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; public class AlteringBrightness { public static void main (String[] args) { //Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); //Reading the Image from the file String file ="D:\\Images\\tiger.jpg"; Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR); //Creating an empty matrix Mat dest = new Mat(src.rows(), src.cols(), src.type()); //Increasing the brightness of an image src.convertTo(dest, -1, 1, 100); // Writing the image Imgcodecs.imwrite("D:\\Images\\altering_brightness_100.jpg", dest); } }
Hình ảnh đầu vào
Sau đây là các hình ảnh đầu ra khác nhau cho các alpha khác nhau giá trị -
giá trị α:-100
giá trị α:-50
Giá trị α:50
Giá trị α:100