Extend R with C!!!

Tsukuba.R#6で発表してきました.
http://wiki.livedoor.jp/syou6162/d/Tsukuba%2eR%236


私の発表スライドは以下の通りです.内容はC言語を使ってRを拡張する話です.

デモのプログラム

デモで使ったCのソースはgithubに上げてあります.
http://github.com/mickey24/laugh_r


実行するにはあらかじめOpenCVをインストールしておく必要があります.

$ git clone git://github.com/mickey24/laugh_r.git
$ cd laugh_r

顔認識用分類器のカスケードのxmlファイルがOpenCVのインストールディレクトリにあるので,それをコピーしてローカルに置きます.

$ cp /opt/local/share/opencv/haarcascades/haarcascade_frontalface_default.xml .

Rを使って拡張用のCのソースをコンパイルします.MakevarsのOpenCVのinclude pathとlibrary pathは環境に合わせて書き換えて下さい.デフォルトではMacPortsでインストールしたOpenCV用のpathになっています.

$ R CMD SHLIB laugh.c

あとはRを起動しCで定義した関数を呼び出せばOKです.

> source("laugh.R")
> laugh("input.jpg", "output.jpg")