正弦波グレーティング (sine wave grating) を作るRスクリプトです。コードを実行すると以下のような画像を出力できます。imagerパッケージが必要です。市原・阿久・石口 (編) (2017)「視覚実験研究ガイドブック」(朝倉書店)のMATLABコードを参考にしました。解説は時間があるときに加筆するかも。
正弦波グレーティング (sine wave grating) を作るRスクリプトです。コードを実行すると以下のような画像を出力できます。imagerパッケージが必要です。市原・阿久・石口 (編) (2017)「視覚実験研究ガイドブック」(朝倉書店)のMATLABコードを参考にしました。解説は時間があるときに加筆するかも。
library(imager)
# 設定 ----------------------------------------------------------------
contrast <- 0.25 # コントラスト
frequency <- 1/32 # 空間周波数
tilt <- 45/180 * pi # 傾き角度
width <- 256 # 出力される画像の横幅 (px)
height <- 256 # 出力される画像の縦幅 (px)
# 出力 ------------------------------------------------------------------
base <- expand.grid(list(x = 1:width, y = 1:height))
x <- base$x
y <- base$y
value <- (1 + contrast * sin(2 * pi * frequency * (x * cos(tilt) + y * sin(tilt)))) * 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, "grating.png") # 保存