# 5x5のガウシアン・フィルタ library(imager) # グレースケール画像 im <- grayscale(boats) # ノイズ画像 im.noise <- im + 0.1 * imnoise(width(im), height(im)) # ガウシアン・フィルタの畳み込み演算を繰り返す f.gauss <- as.cimg(c(1, 4, 6, 4, 1, 4, 16, 24, 16, 4, 6, 24, 36, 24, 6, 4, 16, 24, 16, 4, 1, 4, 6, 4, 1), x = 5, y = 5) 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)