OpenCVの使い方入門 ブラー処理(ぼかし)の入れ方解説

有名画像処理ライブラリ OpenCV でブラー処理(ぼかし)のやり方解説

最近の画像処理の需要増加はめざましいものがあります。

私の会社でも画像処理の需要は年々増えており,かなりの頻度でアプリケーション開発を行っています。まぁだいたいのアプリケーションは製品に部品が組まれているかどうかなどの有る無し判定程度ですが色々な工程から求められています。

実際に画像処理システムの世界市場のグラフを表示しておきます。目覚ましい伸び率ですよね。今後労働人口の減少もあわさって日本での需要は右肩上がりでしょう。

そのため画像処理で何が出来るのかを把握しておく事は非常に重要になります。

OpenCVによる画像のブラー処理(ぼかし)プログラミングを紹介 (Python)

OpenCVは非常に人気のある画像処理ライブラリで,主要な画像処理は簡単なプログラミングで実装できます。

画像処理の基本についてはこちらの記事で,OpenCVによる画像の読込などはこちらの記事で紹介していますので是非見ていってください。

さて,OpenCVによる画像のブラー処理を紹介していこうと思います。使用するプログラミング言語はPythonです。

まず,ベースとなる画像は私の個人的趣味で2020年10月時点で絶賛大人気のVTuberである常闇トワ様の画像を使用させていただきます。本当に美しいですよね。他の画像処理についてもこの画像で紹介していますが,たまには怒った時の画像なども使っていきたいなと最近は考えています。

こちらの画像をC:\Temp\towa.jpgという名前で保存して以下のプログラムを実行するだけでブラー処理(ぼかし)をさせる事ができます。

import cv2

img = cv2.imread('C:/Temp/towa.jpg')    #これでimgにグレースケール画像が入

dst = cv2.blur(img,(3,3))               #指定した範囲でブラー処理(ぼかし)を実施
cv2.imwrite('C:/Temp/blur3.jpg',dst)   #画像を保存

簡単ですよね。cv2.blurに元画像データとブラー処理を行う範囲(縦,横)を入れると戻り値としてぼかし(平滑化)データが帰ってきます。

ちなみに,出力画像はこんな感じになります。引数の(3,3)のところを(10,10)と(15,15)にした場合の画像も例として示しておきます。

どんどんピンボケしたような画像になっていますね。ぼかしとしても使えそうですね。

cv2.bitwise_notによる内部処理を解説

実際にcv2.blurの処理を解説していこうと思います。

blur処理はぼかしと書いてありますが実際には一定範囲内の値を平滑化しています。詳しい処理内容は以下の通りです。

これが10×10の場合はもっと広範囲の平均値を参考にするので変化の少ない画像(ぼかし)のようになります。

これは当然画像の一部を指定して実施する事ができるので一部だけ軽くぼかしを入れる事も可能になります。画像同士をくっつけるときに使えたりもします。

処理自体は非常に簡単ですね。是非みなさんも使ってください。

フォローしてくれると嬉しいです

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA