5,787 views
この記事は最終更新から 1942日 が経過しています。
Octaveで imread を使って画像ファイルを読み込もうとしたところ、以下のようなエラーが発生した。
octave:3> imread('test.tif')
error: imread: invalid image file: imread: image reading capabilities were disabled when Octave was compiled
error: called from:
error: /usr/local/share/octave/3.6.4/m/image/imread.m at line 74, column 7
octave:3>
どうやらOctaveをコンパイルしたときに画像ファイルの読み込みができるように作っていなかったようだ。
そこで Octaveを再度コンパイルすることにした。
[user@dog-server]$ tar zxf octave-3.6.4.tar.gz [user@dog-server]$ cd octave-3.6.4 [user@dog-server]$ mkdir .build [user@dog-server]$ cd .build [user@dog-server]$ ../configure
すると configure実行時に imreadに関する以下のような警告が出た。
configure: WARNING: GraphicsMagick++ library not found. The imread function for reading image files will not be fully functional.
GraphicsMagick++ライブラリが見つからずに imreadが不完全な動作になるとのこと。
GraphicsMagick++を共有ライブラリ(.so)生成指定付きでインストールする。
[user@dog-server]$ tar zxf GraphicsMagick-1.3.18.tar.gz [user@dog-server]$ cd GraphicsMagick-1.3.18 [user@dog-server]$ ./configure --enable-shared [user@dog-server]$ make [user@dog-server]$ make check [user@dog-server]$ sudo make install
ここで、Octaveの configureを再度実行してみる。
[user@dog-server]$ ../configure --with-quantum-depth=32 --enable-shared --disable-static --with-magick-plus-plus=yes
すると、また同じ警告が出た…
configure: WARNING: GraphicsMagick++ library not found. The imread function for reading image files will not be fully functional.
config.logを見ると、どうやら環境変数 PKG_CONFIG_PATH に GraphicsMagick++.pc のパスを設定する必要があるとのこと。
GraphicsMagick++の make installで出力されているはずなので /usr 配下で検索してみる。
[user@dog-server]$ find /usr -name "GraphicsMagick++.pc" /usr/local/lib/pkgconfig/GraphicsMagick++.pc
GraphicsMagick++.pcが置かれている /usr/local/lib/pkgconfig を環境変数 PKG_CONFIG_PATH に設定し、再度Octaveのconfigureを実行する。
[user@dog-server]$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig [user@dog-server]$ ../configure --with-quantum-depth=32 --enable-shared --disable-static --with-magick-plus-plus=yes
すると config.logから「imreadが…」の警告が消えた。
configureがうまく行ったようなので Octaveを make, make checkする。
[user@dog-server]$ make [user@dog-server]$ make check
Octaveを make installする前に imreadが使えるようになったかを run-octave で確認してみる。
[user@dog-server]$ run-octave
octave:1> ls
picture.jpg
octave:2> img=imread('picture.jpg');
octave:3> size(img)
ans =
241 266 3
octave:4>
imreadが正常に動作した。
最後に Octaveを make installする。
[user@dog-server]$ sudo make install
いろいろと手間取ったけれども何とか動くようになりました(^^)