import cv2
import random
# 画像を読み込む
img = cv2.imread('source.jpg')
# 横幅が800ピクセルになるようにアスペクト比を固定してリサイズ
height = round(img.shape[0] * (800 / img.shape[1]))
img = cv2.resize(img, (800, height))
# 画像を保存する
cv2.imwrite('1_リサイズ.jpg', img)
# 画素数の1%のランダム内色のノイズをランダムに位置に配置する
for i in range(round(img.shape[0] * img.shape[1] * 0.01)):
x = random.randint(0, img.shape[1] - 1)
y = random.randint(0, img.shape[0] - 1)
img[y, x] = [random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)]
# 画像を保存する
cv2.imwrite('1_ノイズ.jpg', img)
1_リサイズ

1_ノイズ
import cv2
# 画像を読み込む
img = cv2.imread('1_ノイズ.jpg')
# 移動平均フィルタ
img3 = cv2.blur(img, (3, 3))
img5 = cv2.blur(img, (5, 5))
img7 = cv2.blur(img, (7, 7))
img9 = cv2.blur(img, (9, 9))
# 画像を保存する
cv2.imwrite('2_3.jpg', img3)
cv2.imwrite('2_5.jpg', img5)
cv2.imwrite('2_7.jpg', img7)
cv2.imwrite('2_9.jpg', img9)
2_3

2_5

2_7

2_9
import cv2
# 画像を読み込む
img = cv2.imread('1_ノイズ.jpg')
# ガウシアンフィルタ
img1 = cv2.GaussianBlur(img, (9, 9), 1)
img5 = cv2.GaussianBlur(img, (9, 9), 5)
img9 = cv2.GaussianBlur(img, (9, 9), 9)
# 画像を保存する
cv2.imwrite('3_1.jpg', img1)
cv2.imwrite('3_5.jpg', img5)
cv2.imwrite('3_9.jpg', img9)
3_1

3_5

3_9
import cv2
# 画像を読み込む
img = cv2.imread('1_ノイズ.jpg')
# メディアンフィルタ
img3 = cv2.medianBlur(img, 3)
img5 = cv2.medianBlur(img, 5)
img9 = cv2.medianBlur(img, 9)
# 画像を保存する
cv2.imwrite('4_3.jpg', img3)
cv2.imwrite('4_5.jpg', img5)
cv2.imwrite('4_9.jpg', img9)
4_3

4_5

4_9
import cv2
# 画像を読み込む
img = cv2.imread('1_リサイズ.jpg')
# 双方向フィルタ
img75 = cv2.bilateralFilter(img, 9, 75, 75)
img255 = cv2.bilateralFilter(img, 9, 255, 75)
# 画像を保存する
cv2.imwrite('5_75.jpg', img75)
cv2.imwrite('5_255.jpg', img255)
5_75

5_255