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

JavaOpenCVライブラリを使用してカラー画像をグレースケールとして読み取る。


imread() Imgcodecsのメソッド クラスは、ファイル名を表す文字列値をパラメーターとして受け入れます。このメソッドは、指定されたファイルの内容をマトリックスオブジェクトに読み込み、それを返します。この方法を使用すると、画像の内容を読み取ることができます。

これに加えて、Imgcodecsクラスは、必要な読み取りモードを指定するフラグを表す整数値を受け入れるこのメソッドの別のバリアントも提供します。

以下は、 Imgcodecsのさまざまなフィールドです。 フラグ値として使用できるクラス。

  • IMREAD_COLOR −フラグがこの値に設定されている場合、ロードされた画像は3チャンネルBGR(青緑赤)カラー画像に変換されます。

  • IMREAD_GRAYSCALE −フラグがこの値に設定されている場合、ロードされた画像はシングルチャンネルのグレースケール画像に変換されます。

  • IMREAD_LOAD_GDAL −フラグがこの値に設定されている場合、GDALドライバーを使用してイメージをロードできます。

  • IMREAD_ANYCOLOR −フラグがこの値に設定されている場合、画像は可能な任意のカラー形式で読み取られます。

  • IMREAD_REDUCED_COLOR_2または、
    IMREAD_REDUCED_COLOR_4または、
    IMREAD_REDUCED_COLOR_8
    −フラグがこの値に設定されている場合、画像は3チャンネルBGRとして読み取られ、画像のサイズは、使用されているフィールドに対して画像の元のサイズの1 / 2、1 / 4、または1/8に縮小されます。

  • IMREAD_REDUCED_GRAYSCALE_2または、
    IMREAD_REDUCED_GRAYSCALE_4または、
    IMREAD_REDUCED_GRAYSCALE_8
    −フラグがこの値に設定されている場合、画像はシングルチャネルグレースケール画像として読み取られ、画像のサイズは、使用されるフィールドに対して画像の元のサイズの1 / 2、1 / 4、または1/8に縮小されます。

  • IMREAD_UNCHANGED −フラグがこの値に設定されている場合、ロードされた画像はそのまま返されます。

したがって、カラー画像をグレースケール画像として読み取る必要がある場合は、パラメータとしてIMREAD_GRAYSCALEまたはIMREAD_REDUCED_GRAYSCALE_Xを渡す必要があります。

例1

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadAsGreyScale {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread("D://images//sunset.jpg", Imgcodecs.IMREAD_GRAYSCALE);
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_greyscale.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}

入力

JavaOpenCVライブラリを使用してカラー画像をグレースケールとして読み取る。

出力

JavaOpenCVライブラリを使用してカラー画像をグレースケールとして読み取る。

例2

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
public class ReadingAsGrey2 {
   public static void main(String args[]) {
      //Loading the OpenCV core library
      System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
      String input = "D://images//sunset.jpg";
      //Reading the Image from the file
      Mat matrix = Imgcodecs.imread(input, Imgcodecs.IMREAD_REDUCED_GRAYSCALE_4 );
      //Writing the image
      Imgcodecs.imwrite("D://images//sunset_grey_8.jpg", matrix);
      System.out.println("Image re-Saved");
   }
}

出力

JavaOpenCVライブラリを使用してカラー画像をグレースケールとして読み取る。


  1. JavaOpenCVライブラリを使用してカラー画像をグレースケールとして読み取る。

    imread() Imgcodecsのメソッド クラスは、ファイル名を表す文字列値をパラメーターとして受け入れます。このメソッドは、指定されたファイルの内容をマトリックスオブジェクトに読み込み、それを返します。この方法を使用すると、画像の内容を読み取ることができます。 これに加えて、Imgcodecsクラスは、必要な読み取りモードを指定するフラグを表す整数値を受け入れるこのメソッドの別のバリアントも提供します。 以下は、 Imgcodecsのさまざまなフィールドです。 フラグ値として使用できるクラス。 IMREAD_COLOR −フラグがこの値に設定されている場合、ロ

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

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