R rimageOnWindows - eiichiromomma/CVMLAB GitHub Wiki

(R) rimage on Windows

Windows環境でのrimage

libjpegとlibfftw(2.x)依存なのでLinux環境のみがデフォルト

問題点

get_imagesize_of_JPEG_file関数を使ってjpegを読み込む際にヘッダサイズが構造体内の表記と異なると怒られていた。

Wrong JPEG library version: library is 70, caller expects 62
0,0

のようなエラー。

jpeg-6bとMinGWの相性の問題かも?

と言う訳でVer.7を使うのだが、rimage内に6bのヘッダファイルが有るのでそれを上書きしてしまう。

MinGW/MSYSをインストール

そこらの解説サイト参照。

MinGW\bin;msys\1.0\binとRのbinフォルダをPATHに加えておく。

MSYS上でibjpegとfftwをインストール

libjpegはIndependent JPEG Group からjpegsr7.zipを拾ってくる。 展開して

./configure --prefix=c:/mingw --enable-static --enable-shared CFLAGS="-s -mms-bitfields"
make -j 4
make check
make install

fftwはFFTW Download Page で2.1.5のソースを拾って展開

./configure --prefix=c:/mingw CFLAGS="-03 -s -mms-bitfields"
make -j 4
make check
make install

でOK

ActivePerlのインストール

注意点はActivePerlのパスがMinGWやMSYSより前にあるようにすること。

パッケージのビルド、インストール

\tmpにrimageのソースを展開。 rimage\src\Makevars.winのPKG_LIBSの行を変更

PKG_LIBS= c:/MinGW/lib/libfftw.a c:/MinGW/lib/libjpeg.a

rimage\src内のlibjpeg関係をjpegsr7のものに置き換える。 具体的には

jconfig.h
jmorecfg.h
jpeglib.h

の3つ。

コマンドプロンプトを開いて

cd \tmp
Rcmd INSTALL --no-chm rimage

chmヘルプが欲しい場合はRToolsの配布サイトあたりをチェック。

動作確認

Rを起動して、

library(rimage)
plot(fftImg(read.jpeg(system.file("data", "cat.jpg)", package="rimage"))))

でFFTの結果が表示されればOK。