首頁 >Java >java教程 >如何使用Java OpenCV函式庫來改變影像的亮度?

如何使用Java OpenCV函式庫來改變影像的亮度?

WBOY
WBOY轉載
2023-09-10 23:45:021058瀏覽

org.opencv.core.Mat 類別的 convertTo() 方法對給定矩陣執行所需的計算,以改變影像的對比度和亮度。此方法接受 4 個參數 -

  • mat - 空矩陣,用於保存與來源矩陣具有相同大小和類型的結果。

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

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

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

使用 OpenCV Java 函式庫改變影像的亮度

如上所述,傳遞給此方法的 beta 值會改變影像的亮度 影像,如果為此參數選擇的值為負值(0 到 -255),則影像的亮度會降低。同樣,如果它大於 0(0 到 255),則影像的亮度會增加。

要變更影像的對比度,請透過傳遞呼叫convertTo() 方法空矩陣,-1(獲得相同類型),1 作為alpha 值,beta 值用於增加或減少亮度。

範例

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

輸入圖片

如何使用Java OpenCV库来改变图像的亮度?

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

α 值:-100

α值:-50

如何使用Java OpenCV库来改变图像的亮度?

#α值:50

如何使用Java OpenCV库来改变图像的亮度?

α 值:100

如何使用Java OpenCV库来改变图像的亮度?

以上是如何使用Java OpenCV函式庫來改變影像的亮度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除