LoginSignup
6
0

More than 1 year has passed since last update.

OpenCVで画像処理(平滑化)

Last updated at Posted at 2022-12-09

はじめに

こんにちは!
MYJLab Advent Calendar 2022の10日目は私が担当します。よろしくお願いします!
昨日は、@Glen-Maki さんのXGBoostでチャンピオンズカップを予想してみたという話でした。
こちらの記事も是非ご覧ください!

この記事でやりたいこと

Google Colaboratory上でOpenCVの機能を使って画像処理をおこないます。
今回は、画像の平滑化をしていきます。

やってみる

早速ですが、はじめていきましょう!

環境

私は"Google Colaboratory"を使用しました。

準備

今回はGoogleDrive内の画像を使用するので
以下の方法でGoogle ColaboratoryからGoogleDriveへアクセスできるようにします。

from google.colab import drive
drive.mount('/content/drive')

また、Google ColaboratoryでOpneCVとMatplotlibを使用できるようにします。
Matplotlibは、画像を表示するために使用します。

import cv2
from matplotlib import pyplot as plt

次に、処理をする画像を指定します。
このように、処理したい画像を置いているディレクトリのパスとファイル名を繋げたものを記述します。

IMG_FILE = '処理したい画像を置いているディレクトリのパス + ファイル名'

私は、GoogleDriveのMy Drive下にある'image'というディレクトリの中に置いている'bear.jpg'という画像を処理したいので、'/content/drive/My Drive/image/bear.jpg'と記述しました。

そして、下記の方法で画像を読み込みます。
OpenCVはMatplotlibと色の並びが異なるので、cvtColorを用いて色の並びを変換します。

img = cv2.imread(IMG_FILE, cv2.IMREAD_UNCHANGED)
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

ここまでの手順で加工前の画像を表示する準備ができました。
実際にこちらの記述を追加して画像を表示してみましょう。
※plt.axis('off')は軸を消去するための命令です

plt.axis('off')
plt.imshow(img_rgb)

実行結果はこのようになります。可愛いですね。
bear_処理前.png

本題

さて、ここからが本題になります。

ここまでの準備で画像が表示できるようになったので、
ここからは画像処理をおこなっていきます。

OpenCVで画像を平滑化する方法は複数あるようですが、
今回はcv2.blurを使用して平滑化します。
※数値を大きくするほど平滑化具合が強くなります。

img_blurred = cv2.blur(img_rgb, (50, 50))

準備の時と同様に、画像を表示します。

plt.axis('off')
plt.imshow(img_blurred)

実行結果

実行結果はこのようになります。無事に平滑化できたようです。

bear.png

おわりに

今回は、OpenCVで画像を平滑化してみました。
何か問題などがございましたら、ご指摘いただけますと幸いです。宜しくお願い致します!

最後までお読みいただき、ありがとうございました。
MYJLab Advent Calendar 2022には面白い記事がたくさんあるので、是非ご覧ください!

参考

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0