【python-openCV】画像にノイズを加える方法!度合も自由に調整可能!

 

この記事では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=0)

以降がノイズ付与した画像です。

noise_lebel=20

サンプル画像(noise_lebel=20)

noise_lebel=150

サンプル画像(noise_lebel=150)

noise_lebel=300

サンプル画像(noise_lebel=300)

 

こんな感じでnoise_lebelを大きくしていくほどノイズが大きくなっていることがわかりますね。

 

適宜調整してご利用ください。

 

スポンサーリンク

おわりに

というわけで今回は既存の画像に任意のレベルのノイズを加える方法をご紹介しました。

AIのデータ水増しや、ノイズに強いAIにしたい際などにぜひご活用ください。

 

このように、私のブログでは様々なスキルを紹介しています。

過去記事一覧

 

今は仕事中で時間がないかもしれませんが、ぜひ通勤時間中などに他の記事も読んでいただけると嬉しいです。
⇒興味をもった方は【ヒガサラ】で検索してみてください。

確実にスキルアップできるはずです。

 

最後に、この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
にほんブログ村 IT技術ブログへ
にほんブログ村

それではまた!

コメント

タイトルとURLをコピーしました