Pythonによるデータ分析・機械学習ブログ

Pythonによるデータの前処理・グラフ化、機械学習、統計解析、画像処理、Webスクレイピング、自然言語処理の基礎について紹介していきます。

MENU

【第6回】OpenCVを用いた画像のモザイク処理

はじめに

OpenCVとはインテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリで、画像処理・画像解析および機械学習等の機能を持つC/C++JavaPythonMATLAB用ライブラリとなっています。

Opencvには以下のような機能があります。

  • グレースケール化
  • 2値化
  • 輪郭の検出
  • 顔検出
  • ノイズ除去
  • テンプレートマッチング

画像に写したくないもの、写ってはいけないものがある際にモザイク処理を実施することがあり、そういった場合にはモザイク処理が重要になっていきます。

本記事では、OpenCVを用いた画像のモザイク処理の方法について紹介します。

SAMURAI TERAKOYA

 

1. 本記事で使用する画像

本記事で使用する画像は以下の富士山の画像です。

 

2. モザイク処理

モザイク処理をするにはcv2.resize()を用います。cv2.resize()は以下の様に用います。

img = cv2.resize((src, dsize, , interpolation=***)

または

img = cv2.resize((src, dsize=None, fx=***, fy=***, interpolation=***)

引数は以下の様になります。

引数 内容
src 処理したい画像
dsize リサイズ後の画像のサイズ
fx x方向の倍率
fy y方向の倍率
interpolation 補間方法

interpolationには以下の表に示す種類があります。

interpolation 内容
cv2.INTER_NEAREST 最近傍補間
cv2.INTER_LINEAR バイリニア補間
cv2.INTER_CUBIC バイキュービック補間
cv2.INTER_AREA ピクセル領域の関係を利用したリサンプリング
cv2.INTER_LANCZOS4 Lanczos 補間

 

本記事のリサイズ処理ではcv2.INTER_NEARESTを引数interpolationに指定して実行します。

それではリサイズ処理を実施したいと思います。一度補間を適用しながら小さいサイズにリサイズをして、その後補間を適用しながら元の画像のサイズにリサイズする流れになります。

この時、最初のリサイズの倍率が小さいほど、モザイクの濃さが濃くなります。つまり、リサイズの倍率が0に近いほどモザイクが濃くなり、1に近いほどモザイクが薄くなります。そのため、ここではx、y方向の倍率を0.2、0.4、0.6、0.8の4種類を用意してモザイク処理を実施してみます。

出力結果は以下の様になります。確かに倍率が小さいほどモザイクが濃くなっているのがわかりますね。

【fx,fy = 0.2】

【fx,fy = 0.4】

【fx,fy = 0.6】

【fx,fy = 0.8】

 

オススメ書籍

Pythonで始めるOpenCV4プログラミング

実践OpenCV4 for Python 画像映像情報処理と機械学習

 

スキル修得&転職

 近年、DXの進展に伴うデジタル人材の需要の高まりに追いついていない状況が続いていると経済産業省がホームページで記載している通り、DX人材、IT人材が不足しているのが現状です。さらにコンピュータの性能向上やAI技術の発展により、よりDX人材、IT人材の需要が高まってきます。さらには、今後の長期間安定して職がある業種とも考えられます。

以下の求人では、IT業界の転職や、IT未経験だけどIT人材を志望する就活を支援してくれます。無料で会員登録もできるので、まずは登録だけでもして様子を見てみてはいかがでしょうか?

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼

▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

 

おわりに

本記事では、OpenCVを用いた画像のモザイク処理の方法を紹介しました。画像に写したくないもの、写ってはいけないものがある際にモザイク処理を実施すると思います。普段、それほど使用する機会はないと思いますが、こういった手法があると覚えておくと良いと思います。