この画像からできる限りノイズを取り除いた画像を作成することが目的です。
バイテラルフィルタ、ガウンシアンフィルタ、平均化フィルタ、中央値フィルタを使用してノイズを取り除きます。
今までのソースコードが下にあるのです。
Python
1import cv2, matplotlib 2import numpy as np 3 4img_src = cv2.imread('OpenCV.jpg') 5 6k = 3.0 7 8op = np.array([[-k, -k, -k], 9 [-k, 1+8*k, -k], 10 [-k, -k, -k]]) 11 12img_a = cv2.blur(img_src,ksize=(9,9)) 13img_b = cv2.GaussianBlur(img_a,(5, 5),1) 14img_c = cv2.bilateralFilter(img_b,9,1,1) 15img_d = cv2.bilateralFilter(img_c,9,100,100) 16img_e = cv2.bilateralFilter(img_d,9,1,1) 17img_f = cv2.bilateralFilter(img_e,9,100,100) 18img_g = cv2.medianBlur(img_f,11) 19img_h = cv2.GaussianBlur(img_g,(5, 5),1) 20img_i = cv2.GaussianBlur(img_h,(5, 5),1) 21img_j = cv2.bilateralFilter(img_i,9,100,100) 22img_k = cv2.bilateralFilter(img_j,9,100,100) 23img_l = cv2.filter2D(img_k, ddepth=-10, kernel=op) 24img_m = cv2.convertScaleAbs(img_l) 25img_n = cv2.filter2D(img_m, ddepth=-10, kernel=op) 26img_o = cv2.convertScaleAbs(img_n) 27 28cv2.imwrite('5-3.m.jpg', img_o) 29 30cv2.imshow('image_m', img_o) 31
これを実行すると下の図のようになります。できるだけきれいな画像を作成するのですがこれ以上やってもかわりそうにありません。工夫があれば教えて頂きたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。