-
OpenCVを使って画像に長方形を描画する方法
このプログラムでは、OpenCVの rectangle() 関数を使用して、画像の上に長方形を描画します。この関数には、開始座標、終了座標、色、線の太さ、そして描画対象となる画像そのものといったパラメータを渡します。 元画像 アルゴリズム ステップ1: cv2をインポートする。 ステップ2: imread() を使って画像を読み込む。 ステップ3: 開始座標を定義する。 ステップ4: 終了座標を定義する。 ステップ5: 色と線の太さを定義する。 ステップ6: cv2.rectangle() 関数を使って長方形を描画する。 ステップ7: 長方形を画面に表示する。 サンプルコード import
-
OpenCVのcircle()関数を使って画像に円を描画する方法
はじめに本記事では、OpenCVが提供するcircle()関数を使用して、画像上に円を描画する方法を解説します。円の中心座標・半径・色・線の太さを自由に指定できるため、画像への注釈付けや図形のオーバーレイ表示など、さまざまな場面で活用できます。元画像処理の手順(アルゴリズム)ステップ1:OpenCVをインポートする ステップ2:円の半径を定義する ステップ3:円の中心座標を定義する ステップ4:円の色を定義する ステップ5:線の太さを定義する ステップ6:上記の引数を画像とともにcv2.circle()へ渡す ステップ7:出力結果を表示するcv2.circle()の主な引数image:描画対象
-
OpenCVのfillPoly()関数を使って塗りつぶしポリゴンを描画する方法
この記事では、OpenCVが提供する fillPoly() 関数を使用して、塗りつぶされた多角形(ポリゴン)を画像上に描画する方法を解説します。fillPoly() 関数は、対象となる画像と、多角形の頂点座標を引数として受け取り、指定された色で内部を塗りつぶした形状を描画します。処理の流れ(アルゴリズム)ステップ1:cv2 と numpy をインポートする。 ステップ2:多角形の頂点座標を定義する。 ステップ3:np.zeros() を使って描画用の画像(キャンバス)を作成する。 ステップ4:fillPoly() 関数を使って多角形を描画する。 ステップ5:結果を画面に表示する。サンプルコード
-
OpenCVのputText()関数で画像にテキストを描画する方法
はじめにこの記事では、OpenCVが提供するputText()関数を使用して、画像上にテキストを描画するプログラムを紹介します。putText()関数には、対象となる画像のほかに、フォントの種類、テキストを配置する座標、文字の色、線の太さなどのパラメータを指定できます。元画像アルゴリズムステップ1: cv2をインポートする ステップ2: putText()関数に必要なパラメータを定義する ステップ3: パラメータをputText()関数に渡して呼び出す ステップ4: 画像をウィンドウに表示するサンプルコードimport cv2 image = cv2.imread("testimag
-
OpenCVのblur()関数を使って画像をぼかす方法をわかりやすく解説
この記事では、OpenCVが提供するblur()関数を使用して、画像にぼかし(ブラー)処理をかける方法を解説します。blur()は画像処理の基本となるフィルタの一つで、ノイズ除去や画像の前処理など、さまざまな場面で活用されます。 処理の流れ(アルゴリズム) 画像をぼかすための手順は以下の通りです。 ステップ1:OpenCVをインポートする。 ステップ2:対象となる画像を読み込む。 ステップ3:カーネルサイズを設定する。 ステップ4:blur()関数を呼び出し、画像とカーネルサイズを引数として渡す。 ステップ5:結果を表示する。 元画像 今回使用するサンプル画像は以下の通りです。 サンプルコー
-
OpenCVのGaussianBlur()関数を使って画像をぼかす方法
このプログラムでは、OpenCVが提供するGaussianBlur()関数を使用して、画像にぼかし(ブラー)を適用する方法を解説します。ガウシアンブラーとは?ガウシアンブラー(Gaussian Blur)とは、ガウス関数(正規分布関数)を利用して画像をぼかす処理のことです。画像内のノイズを除去したり、ディテール(細部)を滑らかに抑えたりする目的で、PhotoshopやGIMPなどのグラフィックソフトウェアで広く使われている基本的なフィルタです。また、物体検出などの前処理としても頻繁に活用されています。処理の流れ(アルゴリズム)ステップ1:cv2モジュールをインポートする。 ステップ2:元画像を
-
Python Matplotlibで凡例に特定の項目のみを表示する方法
PythonのMatplotlibでは、plt.legend()を使うことで、リストに値を指定するだけで、グラフの凡例に特定の項目だけを表示できます。この記事では、その具体的な手順とサンプルコードを紹介します。実装手順plt.xlabel()メソッドを使用して、X軸のラベルを設定します。plt.ylabel()メソッドを使用して、Y軸のラベルを設定します。plot()メソッドの引数にリストを渡して、線をプロットします。凡例の位置(location)と枠線を描画するかどうかのフラグ(legend_drawn_flag)を設定することで、最適な位置に凡例を配置し、枠線を表示できます。凡例には「bl
-
OpenCVのmedianBlur()関数を使って画像をぼかす方法
この記事では、OpenCVライブラリに用意されている medianBlur() 関数を使って、画像にぼかし(ブラー)処理を加える方法を解説します。メディアンブラー(中央値フィルタ)は、画像のエッジ(輪郭)を比較的きれいに保ちながら、ノイズを効果的に除去できるのが大きな特徴です。塩胡椒ノイズのような極端な明暗のノイズ除去に特に有効とされています。 元画像 アルゴリズム 手順1:cv2 をインポートする。 手順2:画像を読み込む。 手順3:cv2.medianBlur() 関数に画像とカーネルサイズを渡す。 手順4:処理後の画像を表示する。 サンプルコード import cv2 image =
-
OpenCVのerode()関数を使って画像を侵食する方法
本記事では、OpenCVが提供するerode()関数を使って、画像に侵食(エロージョン)処理を適用する方法を解説します。画像の侵食とは、画像内の白い領域(前景)を縮小させる処理のことです。処理ではカーネル(構造要素)と呼ばれる小さな行列を使用し、カーネル内のピクセルが1つでも0(黒)であれば、そのカーネルに含まれるすべてのピクセルが0に設定されます。これにより、画像中の細かいノイズや小さなオブジェクトが取り除かれ、輪郭が収縮していきます。なお、侵食処理を適用する際は、対象画像がグレースケール画像であることが前提条件となります。カラー画像の場合は、あらかじめグレースケールへ変換しておきましょう。
-
OpenCVのdilate()関数を使った画像の膨張(ダイレーション)処理
この記事では、OpenCVライブラリに用意されているdilate()関数を使って、画像を膨張(ダイレーション)させる方法を解説します。 膨張とは、モルフォロジー変換(形態学的処理)の一種で、画像内のオブジェクトの境界部分にピクセルを追加していく操作です。これにより、白い領域が広がり、画像全体が四方へと拡大されたように見えます。ノイズ除去後の小さな穴を埋めたり、物体同士をつなげたりする前処理としてもよく使われます。 元画像 処理の流れ(アルゴリズム) ステップ1:cv2 と numpy をインポートする。 ステップ2:cv2.imread() を使って画像を読み込む。 ステップ3:np.one
-
PythonのMatplotlibでX軸に日付をプロットする方法
Pythonで時系列データを可視化する際、X軸に日付を表示したいケースはよくあります。PandasとMatplotlibを組み合わせれば、日付をインデックスとしたデータフレームを作成し、gcf().autofmt_xdate()を使うことでX軸の日付表示を自動的に整形できます。実装の手順日付文字列のリストを作成し、pd.to_datetime()を使ってdatetime型に変換します。プロットするデータとして data = [1, 2, 3] を用意します。DataFrame() オブジェクト(ここではDF)を生成します。DFの value 列に手順2のデータを設定します。手順1で作成したda
-
OpenCVで画像にオープニング処理(開操作)を適用する方法
このプログラムでは、画像に対してオープニング処理(開操作)を実行します。オープニングとは、画像の前景から小さなオブジェクト(ノイズ)を取り除き、背景へと統合するモルフォロジー変換の一種です。また、この手法は画像内から特定の形状を検出する目的にも活用できます。オープニング処理は、「収縮(エロージョン)→ 膨張(ダイレーション)」という一連の処理として定義されます。まず画像を収縮させて小さなノイズを消し、その後に膨張させることで元の形状をできるだけ復元する仕組みです。この処理には cv2.morphologyEx(image, cv2.MORPH_OPEN, kernel) 関数を使用します。元画
-
OpenCVを使って画像のクロージング(閉じる)操作を実行する方法
このプログラムでは、cv2.morphologyEx() 関数を使用して、画像に対するクロージング(Closing/閉じる)操作を実行します。クロージングはモルフォロジー変換の一種で、前景に含まれる小さな穴や隙間を埋め、背景側の小さな黒い領域を前景へと変換する処理です。さらに、この手法は画像の中から特定の形状を検出したい場合にも応用できます。クロージングを実行するには、次の形式で関数を呼び出します。cv2.morphologyEx(image, cv2.MORPH_CLOSE, kernel)第1引数に入力画像、第2引数に処理の種類(cv2.MORPH_CLOSE)、第3引数にカーネル(構造要
-
Pillowライブラリを使って画像の各バンド(チャンネル)のピクセル中央値を計算する方法
この記事では、PythonのPillowライブラリを使用して、画像の各チャンネル(バンド)に含まれる全ピクセルの中央値(MEDIAN)を計算する方法を解説します。 一般的なカラー画像には「R(赤)」「G(緑)」「B(青)」の3つのチャンネルが存在するため、実行結果として3つの値からなるリストが得られます。 元画像 アルゴリズム 処理の手順は以下の通りです。 ステップ1:ImageモジュールとImageStatモジュールをインポートする。 ステップ2:対象となる画像ファイルを開く。 ステップ3:開いた画像をImageStatクラスのstat関数に渡す。 ステップ4:ピクセルの中央値を出力する。
-
【Python】Matplotlibで軸ラベルの数値が指数表記に変わるのを防ぐ方法
Matplotlibでグラフを描画すると、大きな数値や小さな数値が自動的に指数表記(科学技術表記)に変換されてしまうことがあります。ticklabel_format() メソッドで style=plain を指定することで、数値が指数形式へ変更されるのを防ぐことができます。 実装の手順 2つのリストを用意し、plot() メソッドを使って折れ線グラフを描画します。 ticklabel_format() メソッドに style=plain を指定します。パラメータを設定しなかった場合、そのフォーマッタの対応するプロパティは変更されずにそのまま維持されます。style=plain を指定すると科
-
個々のフレームをファイルに保存せずにPythonでムービー(アニメーション)を生成する方法
matplotlibのFuncAnimationを利用すると、個々のフレームを画像ファイルとして保存することなく、その場でアニメーション(ムービー)を作成できます。この記事では、粒子の位置を継続的に更新し、最後にscatterインスタンスを返すユーザー定義関数「update」を作成して、動く粒子のアニメーションを描画する方法を解説します。 実装の手順 粒子の初期位置・速度・力・サイズを取得します。 figsize=(7, 7) を指定して、新しいfigureを作成、または既存のfigureをアクティブにします。 xlimとylimを設定しながら、現在のfigureにaxesを追加し、カレント
-
Matplotlibのラベルに改行を入れる方法|Pythonサンプルコード付きで解説
本記事では、PythonのMatplotlibを使って、グラフの軸ラベルに改行を挿入する方法を解説します。「\n」を活用することで、X軸やY軸のラベルを複数行に分けて見やすく表示できます。 実装手順 「\n」を使用して、X軸・Y軸それぞれのラベルに改行を含めたテキストを設定します。 plt.rc()メソッドで現在のrcParamsを設定し、axesグループに対してプロパティサイクルを適用します。 cyclerを使って、線の色のグループを設定します。色のリストは「r」(赤)、「g」(緑)、「b」(青)、「y」(黄)で構成されます。 Cyclerクラスは、単一の位置引数、2つの位置引数のペア、ま
-
OpenCVを使って画像にトップハット(Top-Hat)変換を適用する方法
このプログラムでは、画像に対してトップハット(Top-Hat)操作を実行します。トップハットはモルフォロジー(形態学的)演算の一種で、入力画像から小さな要素や細かいディテールを抽出するために使用されます。特に、暗い背景の中にある明るい物体を強調したい場合に非常に効果的です。 処理には cv2.morphologyEx(image, cv2.MORPH_TOPHAT, kernel) 関数を使用します。 元画像 アルゴリズム ステップ1: cv2 をインポートする。 ステップ2: 画像を読み込む。 ステップ3: カーネルサイズを定義する。 ステップ4: 画像とカーネルを cv2.morpho
-
OpenCVで画像にブラックハット(BlackHat)操作を実行する方法
この記事では、OpenCVを使用して画像に対してブラックハット(BlackHat)操作を実行する方法を解説します。ブラックハット変換はモルフォロジー演算の一種で、明るい背景の中にある暗い対象物を強調したい場合に特に有効です。処理には cv2.morphologyEx(image, cv2.MORPH_BLACKHAT, kernel) 関数を使用します。元画像アルゴリズムステップ1:cv2 をインポートします。ステップ2:画像を読み込みます。ステップ3:カーネルサイズを定義します。ステップ4:画像とカーネルを cv2.morphologyEx() 関数に渡します。ステップ5:出力結果を表示しま
-
OpenCVのpyrUp()関数を使った画像のアップサンプリング方法
本記事では、OpenCVライブラリを使用して画像をアップサンプリング(拡大)するプログラムを紹介します。 アップサンプリングとは、画像の2次元表現を維持したまま空間解像度を高める処理のことです。画像内の小さな領域を拡大表示(ズームイン)したい場合などによく使われます。ここでは、OpenCVが提供するpyrup()関数を使ってこのタスクを実現します。 元画像 アルゴリズム ステップ1: 画像を読み込む。 ステップ2: 画像を引数としてpyrup()関数に渡す。 ステップ3: 出力結果を表示する。 サンプルコード import cv2 image = cv2.imread(testimage.