-
JavaとOpenCVライブラリを使って画像内の顔を検出する方法
JavaでOpenCVを使用して画像から顔を検出するには、CascadeClassifierクラスを利用します。このクラスは、分類器ファイル(カスケードファイル)を読み込み、画像内から目的のオブジェクト(ここでは顔)を検出する役割を担います。 CascadeClassifierクラスとは CascadeClassifierは、OpenCVが提供する物体検出用のクラスです。事前に学習済みのカスケード分類器(XMLファイル)を読み込むことで、顔や人など特定のパターンを画像から認識できます。 detectMultiScale()メソッドについて このクラスが持つdetectMultiScale(
-
【Java】OpenCVライブラリを使って画像のコントラストを変更する方法
画像の明るさやコントラストの増減は、画像のピクセル値を変換することで実現できます。この変換は、次のような数式で表されます。g(i, j) = α ・ f(i, j) + βここで、各要素の意味は以下のとおりです。(i, j):ピクセルの位置(座標)α(ゲイン)と β(バイアス):変換のパラメータ一般に、ゲインパラメータ α が画像のコントラストを制御し、バイアスパラメータ β が画像の明るさを制御します。convertTo() メソッドについてorg.opencv.core.Mat クラスの convertTo() メソッドを使うと、指定した行列に対して必要な計算を実行し、画像のコントラストや
-
Java OpenCVライブラリを使って画像の明るさを変更する方法
OpenCVのorg.opencv.core.Matクラスが提供するconvertTo()メソッドを使うと、行列に対して必要な演算を実行し、画像のコントラストや明るさを簡単に調整できます。このメソッドは以下の4つのパラメータを受け取ります。 mat − 計算結果を格納するための空の行列。ソース行列と同じサイズ・型である必要があります。 rtype − 出力行列の型を指定する整数値。負の値を指定した場合は、ソース行列と同じ型になります。 alpha − ゲイン値。0より大きい値を指定します(デフォルトは1)。この値を変更するとコントラストに影響します。 beta − バイアス値(デフォルトは
-
JavaのOpenCVライブラリで画像の鮮明度(シャープネス)を変更する方法
画像をシャープにする(鮮鋭化)処理は、ぼかし処理とは正反対の操作です。OpenCVライブラリを使って画像の鮮明度を変更するには、まずガウシアンフィルタで元画像を平滑化(ぼかし)し、その平滑化した画像を元の画像から差し引きます。この手法は「アンシャープマスク」と呼ばれる、画像処理における定番のテクニックです。 処理の流れ Imgcodecs.imread() で対象となる画像をファイルから読み込みます。 Imgproc.GaussianBlur() を使って、画像をぼかしたコピーを作成します。 Core.addWeighted() で元画像とぼかし画像を加重合成し、ぼかし成分を差し引きながら輪
-
OpenCVとJavaFXで画像の明るさを下げる方法:convertTo()メソッドの実装例
Javaで画像の明るさを変更する方法の一つとして、OpenCVのconvertTo()メソッドを使う手法があります。このメソッドは、指定された行列(Mat)に対して必要な計算を実行し、画像のコントラストや明るさを調整します。convertTo()メソッドは以下の4つのパラメータを受け取ります。mat − 結果を格納するための空の行列。元の行列と同じサイズ・型である必要があります。rtype − 出力行列の型を指定する整数値。負の値を指定した場合、出力行列の型は元の行列と同じになります。alpha − ゲイン値。0より大きい値である必要があります(デフォルト値は1)。beta − バイアス値(デ
-
JavaFXとOpenCVで画像の明るさとコントラストを変更する方法
OpenCVのorg.opencv.core.Matクラスが提供するconvertTo()メソッドを使うと、画像の明るさやコントラストを簡単に調整できます。このメソッドは、出力先の行列(空のMat)、出力データ型(rtype)、ゲイン(alpha)、オフセット(beta)の順に4つの引数を受け取ります。 各ピクセルの値は「α × 元の画素値 + β」という式で変換されるため、alphaでコントラスト、betaで明るさがそれぞれ制御されます。具体的な調整方法は以下の通りです。 明るさを上げる場合:beta値を0から正方向(最大255)へ増やします(alpha値は1のまま)。 明るさを下げる場
-
OpenCVとJavaFXで画像の鮮明さを変更するアプリケーションの作成方法
画像のシャープ化(鮮明化)は、ぼかし処理とは正反対の操作です。OpenCVライブラリを使って画像の鮮明さを変更するには、まずガウシアンフィルタで元画像を平滑化(ぼかし)し、次にその平滑化した画像を元画像から減算します。この処理により、輪郭やディテールが強調され、画像全体がくっきりとした印象になります。 仕組みのポイント 本記事のサンプルでは、Core.addWeighted()メソッドを使って元画像と平滑化画像を加重合成しています。第2引数のalphaは元画像の重み、第4引数のbetaは平滑化画像の重みです。betaを負の値に設定すると、平滑化成分が元画像から差し引かれ、シャープ化効果が得ら
-
JavaのOpenCVライブラリを使ってRGB画像をHSV色空間に変換する方法
画像処理において、RGBからHSVへの色空間変換は非常に頻繁に利用される処理の一つです。JavaでOpenCVを使用すれば、わずか数行のコードで簡単に実現できます。cvtColor()メソッドとはImgproc クラスが提供する cvtColor() メソッドを使うと、画像の色空間を別の形式へ変換できます。このメソッドは以下の3つのパラメータを受け取ります。src − 変換元の画像(ソース)を表す Mat オブジェクトdst − 変換結果を格納する Mat オブジェクトcode − 変換後の色空間を指定する整数値RGB画像をHSVに変換したい場合は、第3引数として Imgproc.COLOR_
-
Java OpenCVでHSV画像をRGBカラー画像に変換する方法【cvtColor活用ガイド】
画像処理を行う際、色空間の変換は非常に重要な操作の一つです。OpenCVのImgprocクラスが提供するcvtColor()メソッドを使えば、画像の色空間を簡単に別の形式へ変換できます。この記事では、HSV形式の画像をRGBカラー画像に変換する具体的な手順を解説します。cvtColor()メソッドとはcvtColor()メソッドは、画像の色空間をある形式から別の形式へ変換するためのメソッドです。このメソッドは以下の3つのパラメータを受け取ります。src ー 変換元の画像(ソース)を表すMatオブジェクト。dst ー 変換結果を格納する出力先(デスティネーション)を表すMatオブジェクト。cod
-
Java OpenCVライブラリを使ってHSV画像をBGR画像に変換する方法
HSV画像をBGR画像に変換する基本OpenCVのImgprocクラスが提供するcvtColor()メソッドを使うと、画像の色空間を簡単に別の形式へ変換できます。このメソッドは以下の3つのパラメータを受け取ります。src ー 変換元の画像を表すMatオブジェクト(ソース)。dst ー 変換結果を格納するMatオブジェクト(デスティネーション)。code ー 変換先のカラーモードを指定する整数値(カラーコード)。HSV画像をBGR画像に変換したい場合は、cvtColor()メソッドの第3引数として Imgproc.COLOR_HSV2BGR を指定します。これにより、色相(Hue)・彩度(Sat
-
Java OpenCVライブラリでカラー画像をHLSに変換する方法
OpenCVのImgprocクラスが提供するcvtColor()メソッドを使うと、画像の色空間を別の色空間へ簡単に変換できます。このメソッドは、以下の3つの引数を受け取ります。src − 変換元の画像(ソース)を表すMatオブジェクトdst − 変換結果を格納する出力先のMatオブジェクトcode − 変換後の色空間を指定する整数値(カラーコード)カラー画像(RGB)をHLS形式の画像に変換したい場合は、このメソッドの第3引数にImgproc.COLOR_RGB2HLSを指定します。HLSは「色相(Hue)」「輝度(Lightness)」「彩度(Saturation)」で色を表現する色空間で、
-
JavaのOpenCVライブラリでカラー画像をHLS形式に変換する方法
OpenCVのcvtColor()メソッドを使うと、RGBカラー画像をHLS(色相・輝度・彩度)形式に簡単に変換できます。変換には、第3引数としてImgproc.COLOR_RGB2HLSを指定します。HLSカラースペースとはHLSは「Hue(色相)」「Lightness(輝度)」「Saturation(彩度)」の頭文字を取った色表現モデルです。人間の色の知覚に近い形で色を扱えるため、特定の色範囲の抽出や画像解析などの前処理として広く利用されています。サンプルコード以下のコードでは、画像を読み込み、cvtColor()メソッドでRGBからHLSへ変換し、その結果をファイルに保存しています。im
-
JavaとOpenCVで線を描画する方法をわかりやすく解説
Java版OpenCVライブラリのorg.opencv.imgprocパッケージには、Imgprocというクラスが含まれています。画像に直線を描画するには、このクラスが提供するline()メソッドを呼び出します。 line()メソッドのパラメータ line()メソッドは、以下のパラメータを受け取ります。 Matオブジェクト ― 直線を描画する対象となる画像を表します。 Pointオブジェクト2つ ― 直線の始点と終点の座標を表します。 Scalarオブジェクト ― 直線の色をBGR形式で指定します。 整数値 ― 直線の太さを指定します(デフォルト値:1)。 サンプルコード 以下は、白紙の画
-
JavaとOpenCVで楕円を描画する方法|Imgproc.ellipse()の使い方を解説
Java版OpenCVライブラリの org.opencv.imgproc パッケージには、Imgproc クラスが含まれています。画像に楕円を描画するには、このクラスが提供する ellipse() メソッドを呼び出します。 ellipse()メソッドのパラメータ ellipse() メソッドは、以下の引数を受け取ります。 Matオブジェクト:楕円を描画する対象となる画像を表します。 RotatedRectオブジェクト:回転可能な矩形を表します。楕円はこの矩形に内接する形で描画されます。 Scalarオブジェクト:描画する色をBGR形式で指定します。 int型の値:線の太さを指定します(デフォ
-
JavaとOpenCVで長方形を描画する方法|Imgproc.rectangle()の使い方を徹底解説
Java用OpenCVライブラリの org.opencv.imgproc パッケージには、Imgproc クラスが含まれています。画像に長方形を描画するには、このクラスが提供する rectangle() メソッドを使用します。 このメソッドは以下のパラメータを受け取ります。 Matオブジェクト:長方形を描画する対象となる画像を表します。 Pointオブジェクト(2つ):描画する長方形の対角となる2つの頂点座標を表します。 Scalarオブジェクト:長方形の色をBGR形式で指定します。 整数値:長方形の枠線の太さを指定します(デフォルト値は1)。 サンプルコード 以下は、白紙の画像に長方形を
-
JavaとOpenCVで円を描画する方法を徹底解説
Java版OpenCVライブラリの org.opencv.imgproc パッケージには、Imgproc というクラスが含まれています。画像に円を描きたい場合は、このクラスが提供する circle() メソッドを呼び出します。このメソッドは以下のパラメータを受け取ります。Matオブジェクト:円を描画する対象となる画像を表します。Pointオブジェクト:円の中心座標を表します。int型の値:円の半径を表します。Scalarオブジェクト:円の色を表します。OpenCVでは色の指定順序がRGBではなくBGR(青・緑・赤)である点に注意してください。int型の値:円の輪郭線の太さを表します。デフォルト
-
JavaとOpenCVでブラー(平均化)フィルタを実装する方法を解説
画像にブラー(ぼかし)処理を加えるには、ローパスフィルタを使って画像をフィルタリングします。これにより、画像から高周波成分(ノイズやエッジなど)が除去されます。 平均化(Averaging)は、OpenCVが提供するぼかし手法のひとつです。カーネル領域内のすべてのピクセルの平均値を計算し、その値で中心のピクセルを置き換えることで、画像全体を滑らかにぼかします。 この手法で画像をフィルタリング・ぼかし処理するには、blur() メソッドまたは boxFilter() メソッドを使用します。blur() メソッドは、以下の引数を受け取ります。 ソース画像と出力先画像を表す2つの Mat オブジェ
-
JavaとOpenCVでガウシアンブラー(ガウスぼかし)を実装する方法を徹底解説
画像にローパスフィルタを適用してフィルタリングを行うことで、画像をぼかすことができます。この処理により、ノイズやエッジといった高周波成分が画像から取り除かれます。ガウシアンブラー(Gaussian Blurring:ガウスぼかし)は、OpenCVが提供するぼかし手法のひとつで、画像のノイズ除去に非常に高い効果を発揮します。この手法では、カーネル領域内のすべてのピクセルの平均値を使って、中心の要素を置き換えます。GaussianBlur()メソッドの使い方この手法で画像をフィルタリング・ぼかし処理するには、GaussianBlur()メソッドを使用します。このメソッドは以下の引数を受け取ります。
-
JavaとOpenCVでバイラテラルフィルタ(バイラテラルブラー)を実装する方法
画像にローパスフィルタを適用することでぼかし(ブラー)効果を得られます。ローパスフィルタは、画像から高周波成分(ノイズやエッジなど)を取り除く働きがあります。バイラテラルフィルタリングは、OpenCVが提供するぼかし処理の手法の一つで、次のような特徴を持っています。ノイズを効率的に除去できるエッジ(輪郭)をシャープなまま保持できる他のフィルタと比較して処理速度が遅いbilateralFilter() メソッドの使い方バイラテラルフィルタを画像に適用するには、bilateralFilter() メソッドを使用します。このメソッドは以下の引数を受け取ります。入力画像(ソース)と出力画像(デスティネ
-
Java OpenCVで2つの画像にビット単位のXOR演算を実行する方法
OpenCVでは、org.opencv.core.Coreクラスが提供するbitwise_xor()メソッドを使うことで、2つの画像間のビット単位の排他的論理和(XOR)を簡単に計算できます。このメソッドは、ソース行列・デスティネーション行列・結果を格納する行列として3つのMatオブジェクトを受け取り、ソース行列の各要素に対してビット単位のXOR演算を実行し、その結果をデスティネーション行列に格納します。bitwise_xor()メソッドの基本構文Core.bitwise_xor(src1, src2, dst);src1 / src2: 演算対象となる入力画像(Matオブジェクト)dst: