Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java OpenCVライブラリを使用して画像の明るさを変更するにはどうすればよいですか?


convertTo() org.opencv.core.Matのメソッド クラスは、画像のコントラストと明るさを変更するために、指定された行列に対して必要な計算を実行します。このメソッドは4つのパラメーターを受け入れます-

  • マット −ソース行列と同じサイズとタイプの結果を保持するための空行列。

  • rtype −出力マトリックスのタイプを指定する整数値。この値が負の場合、タイプはソースと同じになります。

  • アルファ −ゲイン値。0より大きくなければなりません(デフォルト値1)。

  • ベータ −バイアス値(デフォルト値0)。

OpenCVJavaライブラリを使用して画像の明るさを変更する

前述のように、このメソッドに渡されるベータ値は画像の明るさを変更します。このパラメーターに選択された値が負の値(0〜-255)の場合、画像の明るさは減少します。同様に、0(0〜255)より大きい場合、画像の明るさが増します。

画像のコントラストを変更するには、 convertTo()を呼び出します。 空行列、-1(同じタイプを取得するため)、1をアルファ値として渡し、ベータ値を渡して明るさを増減する方法。

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

Java OpenCVライブラリを使用して画像の明るさを変更するにはどうすればよいですか?

α値:-50

Java OpenCVライブラリを使用して画像の明るさを変更するにはどうすればよいですか?

α値:50

Java OpenCVライブラリを使用して画像の明るさを変更するにはどうすればよいですか?

α値:100

Java OpenCVライブラリを使用して画像の明るさを変更するにはどうすればよいですか?


  1. Java OpenCVライブラリを使用してネガティブイメージをポジティブイメージに変換するにはどうすればよいですか?

    ネガティブイメージをポジティブに変換するには- ImageIO.read()メソッドを使用して必要な画像を読み取ります。 画像の高さと幅を取得します。 ネストされたforループを使用すると、画像の各ピクセルをトラバースします。 getRGB()メソッドを使用してピクセル値を取得します。 ピクセルから各値を取得するには、各色の開始位置に右シフトする必要があります。つまり、赤の場合はアルファ16の場合は24、赤の場合はビット単位で操作し、0Xffで操作します。これにより、変数がマスクされ、最後の8ビットが残り、残りのビットはすべて無視されます。 新しい赤、緑、青

  2. Java OpenCVライブラリを使用してイメージを作成するにはどうすればよいですか?

    OpenCVライブラリを使用すると、画像フィルタリング、幾何学的画像変換、色空間変換、ヒストグラムなどの画像処理操作を実行できます。 画像を書く Imgcodecsクラスのimread()メソッドを使用して画像のコンテンツを読み取るたびに、結果がMatrixオブジェクトに読み込まれます。 imwrite()メソッドを使用してイメージを書き込み/保存できます。これは2つのパラメータ、つまり-を受け入れます ファイル −結果を保存するファイルパスを表す文字列値。 Img −保存する画像のデータを含むマトリックスオブジェクト。 例 次のJavaの例は画像の内容を読み取りますc