ライブラリNumpyを用いた正規分布に基づくゴマ塩ノイズ付加処理と除去処理

#初めに(^ω^)
モザイクっていやですよね。ノイズっていやですよね…
ほんとは音響信号周りでやる予定だったものなんですが、画像のほうがウケがいいかなと思ってやってみました。思ったよりもクオリティ高い？！
#作成したソースコード
```python
#---------------------------------------------------------
#ライブラリNumpyを用いた正規分布に基づくゴマ塩ノイズ付加処理と除去処理
#---------------------------------------------------------
import numpy as np
import cv2

#保存先指定
file = './text11.txt'

#カラーで読み込み
img = cv2.imread('./shigure.png')

#Numy配列に保存
im = np.array(img)

#画像サイズ取得
shape = im.shape

#1ピクセル事にノイズ付加処理
for x in range(shape[0]):
    for y in range(shape[1]):
        Count = 0
        rand = np.random.randint(3)#乱数作成
        print (rand)
        if rand == 0:
            for Count in range(3):
                im[x][y][Count] = 0
        if rand == 1:
            for Count in range(3):
               im[x][y][Count] = 255

#ノイズ付加画像出力
cv2.imwrite('./Add noise.png', im)

#ノイズ除去
median1 = cv2.medianBlur(im, ksize = 3)#1回目
median2 = cv2.medianBlur(median1, ksize = 3)#2回目
median3 = cv2.medianBlur(median2, ksize = 3)#3回目
median4 = cv2.medianBlur(median3, ksize = 3)#4回目
median5 = cv2.medianBlur(median4, ksize = 3)#5回目
median6 = cv2.medianBlur(median5, ksize = 3)#6回目
median7 = cv2.medianBlur(median6, ksize = 3)#7回目
median8 = cv2.medianBlur(median7, ksize = 3)#8回目
median9 = cv2.medianBlur(median8, ksize = 3)#9回目
median10 = cv2.medianBlur(median9, ksize = 3)#10回目

#ノイズ除去画像出力
cv2.imwrite('./Noise removal1.png', median1)#1回目のノイズ除去画像出力
cv2.imwrite('./Noise removal10.png', median10)#10回目のノイズ除去画像出力
```

#コード解説
##コード実行結果
元画像
![shigure.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515390/27edfb4b-0914-a473-8ff1-c9ead3cf99e6.png)

ノイズ付加画像
![Add noise.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515390/75a6afe5-8b93-19ad-55f6-758b657b0717.png)

ノイズ除去１回目
![Noise removal1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515390/cf73cb88-d8b3-e32b-515f-9ea6c41fba7e.png)

ノイズ除去１０回目
![Noise removal10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/515390/c7f95f73-f18b-ab4c-bf89-c323a13933ce.png)

##コード解説あれこれ
###ノイズ付加処理
```python

#1ピクセル事にノイズ付加処理
for x in range(shape[0]):
    for y in range(shape[1]):
        Count = 0
        rand = np.random.randint(3)#乱数作成
        print (rand)
        if rand == 0:
            for Count in range(3):
                im[x][y][Count] = 0
        if rand == 1:
            for Count in range(3):
               im[x][y][Count] = 255
```
ノイズ付加処理に関しては、１ピクセルごとに乱数を用いてノイズを付加しています。その為には、１ピクセルごとに中身をほげふがしなければなりません。その為に２重forを用いてみました。x軸とy軸の関係性に注意しながら見てみてください！

###ノイズ除去処理
```Python
#ノイズ除去
median1 = cv2.medianBlur(im, ksize = 3)#1回目
median2 = cv2.medianBlur(median1, ksize = 3)#2回目
median3 = cv2.medianBlur(median2, ksize = 3)#3回目
median4 = cv2.medianBlur(median3, ksize = 3)#4回目
median5 = cv2.medianBlur(median4, ksize = 3)#5回目
median6 = cv2.medianBlur(median5, ksize = 3)#6回目
median7 = cv2.medianBlur(median6, ksize = 3)#7回目
median8 = cv2.medianBlur(median7, ksize = 3)#8回目
median9 = cv2.medianBlur(median8, ksize = 3)#9回目
median10 = cv2.medianBlur(median9, ksize = 3)#10回目

#ノイズ除去画像出力
cv2.imwrite('Noise removal1.png', median1)#1回目のノイズ除去画像出力
cv2.imwrite('Noise removal10.png', median10)#10回目のノイズ除去画像出力
```
#参考文献
たぶんないなぁ
#目次のようなもの
[Re：ゼロから始める機械学習生活（深層学習もあるよ）](https://qiita.com/KengoKudou/items/0973ee8f98315460b195)
ここに進捗状況等を載せてます。
今まで書いたものを一覧にしていたりするので見てみてください！