numericalipb:ans2
【数値情報処理b】第2回の答え
課題
gradient_forward.R を書き換えて、画像(人によって異なる)をダウンロードしてグレースケール画像にした後にSobelフィルタで輪郭抽出を行うプログラムを作って提出しなさい。
- 画像のダウンロードもプログラム中で行うように書くこと。
- フィルタを作成して correlate() を使うこと。
- フィルタはx方向、y方向それぞれ作って行うこと。
解答例
- report2.R
- # 輪郭抽出(Sobelフィルタ)
- # グレースケール画像
- im <- grayscale(load.image("画像のURL"))
- # x方向のSobelフィルタ
- # y方向のSobelフィルタ
- # 畳み込み演算
- im.Sx = correlate(im, f.Sx)
- im.Sy = correlate(im, f.Sy)
- # 同時に4枚並べるレイアウト
- # レイアウトを元に戻す
フィルタを 8 で割ってもよい(結果は変わらない)。
# x方向のSobelフィルタ f.Sx <- as.cimg(c(-1, 0, 1, -2, 0, 2, -1, 0, 1), x = 3, y = 3) / 8 # y方向のSobelフィルタ f.Sy <- as.cimg(c(1, 2, 1, 0, 0, 0, -1, -2, -1), x = 3, y = 3) / 8
numericalipb/ans2.txt · 最終更新: 2025/06/25 14:23 by yuki