import numpy as np
import cv2
from random import random
from google.colab.patches import cv2_imshow
import copy
img_path = '/content/drive/My Drive/다핏문제/909/lena.jpg'
다음 함수를 적용해서 이미지에 노이즈를 추가한다.
def salt_and_pepper(image, p):
output = np.zeros(image.shape,np.uint8)
thres = 1 - p
for i in range(image.shape[0]):
for j in range(image.shape[1]):
rdn = random()
if rdn < p:
output[i][j] = 0
elif rdn > thres:
output[i][j] = 255
else:
output[i][j] = image[i][j]
return output
p = 0.2로 적용.
img = cv2.imread(img_path,2)
origin = copy.deepcopy(img)
img = salt_and_pepper(img,0.2)
cv2_imshow(img)
#medianBlur가 salt and pepper에 효과가 좋다.
img = cv2.medianBlur(img, 3)
cv2_imshow(img)
원래 이미지는 아래와 같다.
cv2_imshow(origin)
'DAFIT > 909 - OpenCV 연습하기 (1)' 카테고리의 다른 글
<DAFIT> 09 OpenCV 연습하기(1) - 06 Edge Detection(1) (0) | 2019.12.11 |
---|---|
<DAFIT> 09 OpenCV 연습하기(1) - 05 Noise and Filtering(2) (0) | 2019.12.10 |
<DAFIT> 09 OpenCV 연습하기(1) - 03 Sharpening Filter (0) | 2019.12.10 |
<DAFIT> 09 OpenCV 연습하기(1) - 02 Blurring Filter (0) | 2019.12.10 |
<DAFIT> 09 OpenCV 연습하기(1) - 01 Convolution Filter (0) | 2019.12.10 |