如何使用Java OpenCV庫更改影像亮度?


org.opencv.core.Mat類的convertTo()方法對給定的矩陣執行必要的計算,以更改影像的對比度和亮度。此方法接受4個引數:

  • mat - 空矩陣,用於儲存與源矩陣大小和型別相同的計算結果。

  • rtype - 指定輸出矩陣型別的整數值。如果此值為負,則型別將與源型別相同。

  • alpha - 增益值,必須大於0(預設值為1)。

  • beta - 偏差值(預設值為0)。

使用OpenCV Java庫更改影像亮度

如上所述,傳遞給此方法的beta值會更改影像的亮度。如果此引數的值為負值(0到-255),則影像亮度降低。類似地,如果它大於0(0到255),則影像亮度增加。

要更改影像的對比度,請透過傳遞空矩陣、-1(獲取相同的型別)、1作為alpha值以及beta值來呼叫**convertTo()**方法,以增加或減少亮度。

示例

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);
   }
}

輸入影像

以下是不同alpha值的各種輸出影像:

α值:-100

α值:-50

α值:50

α值:100

更新於:2020年4月9日

760 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.