라이브러리 Numpy를 이용한 정규 분포에 기초한 참깨염 노이즈 부가 처리 및 제거 처리

처음에(^ω^)



모자이크는 아니 네요. 소음이 아니네요 ...
정말 음향 신호 주위에서 할 예정이었던 것입니다만, 이미지 쪽이 우케가 좋을까라고 생각해 보았습니다. 생각보다 퀄리티 높다? !

작성한 소스 코드


#---------------------------------------------------------
#ライブラリ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回目のノイズ除去画像出力

코드 해설



코드 실행 결과



원본 이미지


노이즈 추가 이미지


노이즈 제거 1회째


노이즈 제거 10회째


코드 해설 저것 이것



노이즈 부가 처리



#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

노이즈 부가 처리에 관해서는, 1픽셀마다 난수를 이용해 노이즈를 부가하고 있습니다. 그러기 위해서는 1픽셀마다 내용물을 꺼내야 합니다. 그 때문에 2중 for를 이용해 보았습니다. x축과 y축의 관계에 주의하면서 보세요!

노이즈 제거 처리


#ノイズ除去
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: 처음부터 시작하는 기계 학습 생활(심층 학습도 있어)
여기에 진척 상황 등을 실고 있습니다.
지금까지 쓴 것을 나열하고 있으니 봐주세요!

좋은 웹페이지 즐겨찾기