この記事ではpythonを使って、以下の画像のように既存の画像に任意のレベルでノイズを加える方法をご紹介していきます。
上の画像はかなり粗いノイズを加えていますが、気づかないレベルの小さいノイズも変更することも自由にできます。
AIの教師データにノイズを加える際などにぜひご活用ください。
それではさっそくやっていきましょう。
※この作業をpythonというプログラミング言語を用いて実行していきます。インストールから始めたい方は以下からご覧ください。
必要なライブラリ
〇openCV
⇒画像の読み込み、保存に使用
〇numpy
⇒ノイズとなる乱数の作成に使用
numpy はAnacondaを使用すればあらかじめインストールされていますが、openCVは自分で追加インストールが必要です。
openCVのインストール方法については以下の記事で解説しています。
画像にノイズを加えるサンプルコード
それでは実際の作業に入っていきましょう。
さっそくですが、以下が既存の画像にノイズを加えるサンプルコードです。
※python実行ファイルと同じ場所にノイズ付与したい画像が保存されていることを想定して書いています。ノイズ付与後の画像も同じフォルダに出力されます。
#ライブラリのインポート
import numpy as np
import cv2
#ベース画像の読み込み
img=cv2.imread('mouse.jpg',cv2.IMREAD_GRAYSCALE)
h,w=img.shape[:2]
#ノイズ画像の作成
noise_level=150
noise=np.random.randint(0,noise_level,(h,w))
img=img+noise
cv2.imwrite('mouse_noise.jpg',img)
このコードの中のnoise_lebelを調整することで、ノイズの強弱を調整することができます。
※あまり大きな値にすると真っ白になりますのでご注意ください。
サンプルコードの実行結果
それでは最後にさきほどのサンプルコードをnoize_levelをいくつか変えて実行してみましょう。
まずは生画像です。(noise_lebel=0)
以降がノイズ付与した画像です。
noise_lebel=20
noise_lebel=150
noise_lebel=300
こんな感じでnoise_lebelを大きくしていくほどノイズが大きくなっていることがわかりますね。
適宜調整してご利用ください。
おわりに
というわけで今回は既存の画像に任意のレベルのノイズを加える方法をご紹介しました。
AIのデータ水増しや、ノイズに強いAIにしたい際などにぜひご活用ください。
このように、私のブログでは様々なスキルを紹介しています。
今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。
確実にスキルアップできるはずです。
最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村
それではまた!
Follow @HigashiSalary
コメント