視覚実験でよく使われるガボールパッチ (Gabor patch) を作るRスクリプトです。コードを実行すると以下のような画像を出力できます。imagerパッケージが必要です。市原・阿久・石口 (編) (2017)「視覚実験研究ガイドブック」(朝倉書店)のMATLABコードを参考にしました。解説は時間があるときに加筆します。
視覚実験でよく使われるガボールパッチ (Gabor patch) を作るRスクリプトです。コードを実行すると以下のような画像を出力できます。imagerパッケージが必要です。市原・阿久・石口 (編) (2017)「視覚実験研究ガイドブック」(朝倉書店)のMATLABコードを参考にしました。解説は時間があるときに加筆します。
library(imager)
# 設定 ----------------------------------------------------------------
contrast <- 0.5 # コントラスト (0-1)
frequency <- 1/32 # 空間周波数
tilt <- 45/180 * pi # 傾き角度
phase <- pi # 位相
gsigma <- 20 # ガウス関数の標準偏差
width <- 256 # 出力される画像の横幅 (px)
height <- 256 # 出力される画像の縦幅 (px)
# 出力 ------------------------------------------------------------------
base <- expand.grid(list(x = 1:width, y = 1:height))
x <- base$x
y <- base$y
x2 <- x - width/2
y2 <- y - width/2
value <- (1 + contrast * sin(2 * pi * frequency * (x2 * cos(tilt) + y2 * sin(tilt)) + phase)*exp(-(x2^2 + y2^2) / (2 * gsigma^2))) * 127 / 255
value <- ifelse(value < 0, 0, value)
value <- ifelse(value > 1, 1, value)
output <- as.cimg(data.frame(x=x,y=y,z=1,cc=1,value=value))
# plot(output) # 可視化する場合
imager::save.image(output, "gabor.png") # 保存