Computer >> Máy Tính >  >> Lập trình >> Java

Làm cách nào để thay đổi độ sáng của hình ảnh bằng thư viện Java OpenCV?

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

Làm cách nào để thay đổi độ sáng của hình ảnh bằng thư viện Java OpenCV?

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

Làm cách nào để thay đổi độ sáng của hình ảnh bằng thư viện Java OpenCV?

giá trị α:-50

Làm cách nào để thay đổi độ sáng của hình ảnh bằng thư viện Java OpenCV?

Giá trị α:50

Làm cách nào để thay đổi độ sáng của hình ảnh bằng thư viện Java OpenCV?

Giá trị α:100

Làm cách nào để thay đổi độ sáng của hình ảnh bằng thư viện Java OpenCV?