はじめに
OpenCVとはインテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリで、画像処理・画像解析および機械学習等の機能を持つC/C++、Java、Python、MATLAB用ライブラリとなっています。
Opencvには以下のような機能があります。
- グレースケール化
- 2値化
- 輪郭の検出
- 顔検出
- ノイズ除去
- テンプレートマッチング
画像に写したくないもの、写ってはいけないものがある際にモザイク処理を実施することがあり、そういった場合にはモザイク処理が重要になっていきます。
本記事では、OpenCVを用いた画像のモザイク処理の方法について紹介します。
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を用いた画像のモザイク処理の方法を紹介しました。画像に写したくないもの、写ってはいけないものがある際にモザイク処理を実施すると思います。普段、それほど使用する機会はないと思いますが、こういった手法があると覚えておくと良いと思います。