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

Java OpenCVライブラリを使ってHSV画像をBGR画像に変換する方法

HSV画像をBGR画像に変換する基本

OpenCVのImgprocクラスが提供するcvtColor()メソッドを使うと、画像の色空間を簡単に別の形式へ変換できます。このメソッドは以下の3つのパラメータを受け取ります。

  • src ー 変換元の画像を表すMatオブジェクト(ソース)。
  • dst ー 変換結果を格納するMatオブジェクト(デスティネーション)。
  • code ー 変換先のカラーモードを指定する整数値(カラーコード)。

HSV画像をBGR画像に変換したい場合は、cvtColor()メソッドの第3引数として Imgproc.COLOR_HSV2BGR を指定します。これにより、色相(Hue)・彩度(Saturation)・明度(Value)で表現された画像が、一般的なBlue・Green・Red形式へと変換されます。

サンプルコード

public class HSV2BGR {
   public static void main(String args[]) throws Exception {
      // OpenCVネイティブライブラリの読み込み
      System.loadLibrary( Core.NATIVE_LIBRARY_NAME );
     
      // HSV画像を読み込む
      Mat src = Imgcodecs.imread("D:\\images\\hsvimage2.jpg");
     
      // 変換結果を格納するMatオブジェクトを生成
      Mat dst = new Mat();
     
      // HSVからBGRへ変換
      Imgproc.cvtColor(src, dst, Imgproc.COLOR_HSV2BGR);
     
      // 変換結果をファイルに保存
      Imgcodecs imageCodecs = new Imgcodecs();
      imageCodecs.imwrite("D:\\images\\hsv2bgr.jpg", dst);
     
      System.out.println("Image Saved");
   }
}

入力画像(HSV)

Java OpenCVライブラリを使ってHSV画像をBGR画像に変換する方法

出力画像(BGR)

Java OpenCVライブラリを使ってHSV画像をBGR画像に変換する方法

ポイントまとめ

  • cvtColor()は画像処理における色空間変換の中核となるメソッドです。
  • 変換コードを変更すれば、HSV以外にもグレースケールやLabなど様々な色空間への変換が可能です。
  • 実行前にSystem.loadLibrary()でネイティブライブラリを必ず読み込んでください。
  1. JavaのOpenCVライブラリでカラー画像をグレースケールに変換する方法

    カラー画像をグレースケールに変換する基本OpenCVのImgprocクラスが提供するcvtColor()メソッドを使うと、画像の色空間を別の色空間へ変換できます。このメソッドは以下の3つのパラメータを受け取ります。src – 変換元の画像を表すMatオブジェクト(ソース)dst – 変換結果を格納するMatオブジェクト(出力先)code – 変換後の色空間を指定する整数値(カラーコード)カラー画像をグレースケールに変換する場合は、第3パラメータにImgproc.COLOR_RGB2GRAYを指定します。このコードはRGB形式の画像をグレースケール(白黒の濃淡表現)へ変換することを意味しています

  2. JavaとOpenCVライブラリを使って画像を保存(書き出し)する方法

    OpenCVライブラリを利用すると、画像フィルタリング、幾何学的変換、色空間の変換、ヒストグラム処理など、さまざまな画像処理操作を行うことができます。本記事では、その中でも基本的な操作である「画像の読み込みと保存(書き出し)」の方法を解説します。画像を書き出す(保存する)方法Imgcodecsクラスのimread()メソッドを使って画像を読み込むと、その内容はMat(Matrix)オブジェクトに格納されます。読み込んだ画像をファイルとして保存するには、imwrite()メソッドを使用します。imwrite()メソッドは、以下の2つの引数を受け取ります。file:保存先のファイルパスを表す文字列