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

OpenCVのblur()関数を使って画像をぼかす方法をわかりやすく解説

この記事では、OpenCVが提供するblur()関数を使用して、画像にぼかし(ブラー)処理をかける方法を解説します。blur()は画像処理の基本となるフィルタの一つで、ノイズ除去や画像の前処理など、さまざまな場面で活用されます。

処理の流れ(アルゴリズム)

画像をぼかすための手順は以下の通りです。

ステップ1:OpenCVをインポートする。
ステップ2:対象となる画像を読み込む。
ステップ3:カーネルサイズを設定する。
ステップ4:blur()関数を呼び出し、画像とカーネルサイズを引数として渡す。
ステップ5:結果を表示する。

元画像

今回使用するサンプル画像は以下の通りです。

OpenCVのblur()関数を使って画像をぼかす方法をわかりやすく解説

サンプルコード

実際のコードは非常にシンプルです。cv2.imread()で画像を読み込み、カーネルサイズを指定してblur()を呼び出すだけです。

import cv2
image = cv2.imread("testimage.jpg")
kernel_size = (7,7)
image = cv2.blur(image, kernel_size)
cv2.imshow("blur", image)

実行結果

ぼかし処理後の画像

OpenCVのblur()関数を使って画像をぼかす方法をわかりやすく解説

上記の出力を見ると、元画像と比べて全体的になめらかになり、細部が柔らかくぼやけていることが確認できます。

仕組みの解説

blur()関数におけるカーネルサイズは、一度にぼかし処理を適用する範囲を決める重要なパラメータです。指定したサイズのカーネル(小さな窓)が画像全体を順番に走査していき、その範囲内に含まれるピクセル値を平均化することでぼかし効果を実現しています。カーネルサイズを大きくするほど、ぼかしの強さも強くなります。

  1. OpenCV×Pythonで画像をぼかす方法|ガウシアンフィルタの基本と実装例

    OpenCVは、画像処理に最も優れたPythonパッケージの一つです。信号にノイズが混入するのと同じように、画像にもさまざまな種類のノイズが含まれており、その主な発生源はカメラセンサーなど画像取得元そのものです。PythonのOpenCVパッケージには、画像を滑らかにする「スムージング(平滑化)」、いわゆる「ぼかし(ブラー)」処理を行うための機能が用意されています。 本記事では、その中でも特に一般的な手法であるガウシアンフィルタ(Gaussian Filter)を使った画像のぼかし方を解説します。ガウシアンフィルタを使用すると、画像内のシャープなエッジ(輪郭)を滑らかにしながら、過度なぼかしを

  2. OpenCVを使って画像・動画のエッジを検出するPythonプログラムの書き方

    この記事では、Pythonを使って画像や動画ファイルからエッジ(輪郭)を検出する方法を解説します。エッジ検出には、コンピュータビジョン向けに設計されたオープンソースライブラリ「OpenCV」を使用します。OpenCVはもともとIntelによって開発されたライブラリで、BSDライセンスのもとで無料で利用できます。OpenCVの機能を使うには、pipでインストールを行います。インストール時にNumPyモジュールも自動的にダウンロードされるため、別途用意する必要はありません。sudo pip3 install opencv-python今回の入力には動画ファイルを使用しますが、Webカメラを接続すれ