# ガウシアン・フィルタ library(imager) # グレースケール画像 im <- grayscale(boats) # ノイズ画像 im.noise <- im + 0.1 * imnoise(width(im), height(im)) # ガウシアン・フィルタの畳み込み演算を5回繰り返す # Bi(2,0.5) を利用 f.gauss <- as.cimg(c(1, 2, 1, 2, 4, 2, 1, 2, 1), x = 3, y = 3) / 16 im.gauss <- im.noise for (i in 1 : 5) { im.gauss <- correlate(im.gauss, f.gauss) } # 同時に3枚並べるレイアウト layout(t(1 : 3)) plot(im, interpolate = FALSE, main = "元の画像") plot(im.noise, interpolate = FALSE, main = "ノイズ画像") plot(im.gauss, interpolate = FALSE, main = "ガウシアン・フィルタ") # レイアウトを元に戻す layout(1)