Mac(Snow Leopard)にRで画像処理を行えるように、rimageパッケージをインストールして使ってみる。
エラー: 関数 "read.jpeg" を見つけることができませんでした
このようなエラーを見た人がいるかもしれない。Windowsの方は簡単にインストール出来るようである。see. R での JPEG ファイルの画像処理の例 (rimage パッケージを使用)
% sudo port install fftw jpeg % sudo ln -s /opt/local/include/dfftw.h /usr/local/include/fftw.h % sudo ln -s /opt/local/lib/libdfftw.a /usr/local/lib/libfftw.a
R起動で下記コマンドを入力。
> install.packages("rimage" , repos="http://cran.md.tsukuba.ac.jp/" , type="source" , configure.args="--with-fftw-include=/usr/local/include --with-fftw-lib=/usr/local/lib --with-jpeg-include=/opt/local/include --with-jpeg-lib=/opt/local/lib" )
Thanks! http://meme.biology.tohoku.ac.jp/students/iwasaki/rimage
関数
- clipping(img, low=0, high=1)
- ピクセル値をlow .. high の間に制限。
- equalize(img)
- ヒストグラムの平坦化
- highpass(img,radius)
- ハイパスフィルタ。see ハイパスフィルタ - Wikipedia
- imagematrix(mat, type=NULL, ncol=dim(mat)[1], nrow=dim(mat)[2], noclipping=FALSE)
- matrixからimagematrixオブジェクトを生成する. imagematrixオブジェクトは、rimageにおける基本的なデータ構造
- imageType(img)
- 与えられたイメージマトリクスのカラータイプ("rgb" or "grey")
メモ
> img <- read.jpeg('/Users/rish/test.jpg') > imageType(img) [1] "rgb" > dim(img) [1] 756 537 3 > imageType(rgb2grey(img)) [1] "grey" > dim(rgb2grey(img)) [1] 756 537
dimは、行列の行数と列数を表示するらしい。最後の3は、RGBの3だと思う(3チャンネルってこういう意味?)。グレイスケールに変換した際には、値が二値になっているため、この3が消えている(最後の行)。これから分かるように、画像でさえも行列のように扱えるようである。
> x <- rgb2grey(img) > op <- par(mfrow=c(2,2)) > plot(apply(x, 1, sum),type = 'l') > plot(apply(x, 2, sum),type = 'l') > image(x)
apply(x, 1, sum)は、行列xの各行に対して、sum関数を適応するという意味。つまりは、各行の和を返している。
周辺分布を表示してみた。これでいいはず。もう少し分かりやすく表示したかったけど、これだけでもよく分かる。周辺分布について分かりやすい解説はAS3 でヒストグラムを作る (4) - 周辺分布 - てっく煮ブログを参照すること。