Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách điều chỉnh độ sáng hình ảnh bằng Java OpenCV


Phương thức convertTo() của lớp org.opencv.core.Mat thực hiện các phép tính cần thiết trên ma trận để 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ố:

  • mat – Ma trận rỗng để lưu kết quả với cùng kích thước và kiểu như ma trận nguồn.

  • rtype – Giá trị nguyên chỉ định kiểu ma trận đầu ra. Nếu âm, kiểu sẽ giống nguồn.

  • alpha – Giá trị gain, phải lớn hơn 0 (mặc định 1).

  • beta – Giá trị bias (mặc định 0).

Điều chỉnh độ sáng hình ảnh bằng OpenCV Java

Như đã đề cập, giá trị beta truyền vào phương thức này thay đổi độ sáng của hình ảnh. Nếu giá trị này là số âm (0 đến -255), độ sáng sẽ giảm. Tương tự, nếu lớn hơn 0 (0 đến 255), độ sáng sẽ tăng.

Để điều chỉnh độ sáng, gọi phương thức convertTo() với ma trận rỗng, -1 (để giữ kiểu), alpha = 1 và giá trị beta để tăng/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) {
// Tải thư viện lõi OpenCV
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// Đọc hình ảnh từ file
String file = "D:\\Images\\tiger.jpg";
Mat src = Imgcodecs.imread(file, Imgcodecs.IMREAD_COLOR);
// Tạo ma trận rỗng
Mat dest = new Mat(src.rows(), src.cols(), src.type());
// Tăng độ sáng của hình ảnh
src.convertTo(dest, -1, 1, 100);
// Ghi hình ảnh
Imgcodecs.imwrite("D:\\Images\\altering_brightness_100.jpg", dest);
}
}

Ảnh đầu vào

Cách điều chỉnh độ sáng hình ảnh bằng Java OpenCV

Dưới đây là các ảnh đầu ra với các giá trị alpha khác nhau:

α-value: -100

Cách điều chỉnh độ sáng hình ảnh bằng Java OpenCV

α-value: -50

Cách điều chỉnh độ sáng hình ảnh bằng Java OpenCV

α-value: 50

Cách điều chỉnh độ sáng hình ảnh bằng Java OpenCV

α-value: 100

Cách điều chỉnh độ sáng hình ảnh bằng Java OpenCV