(25) imreadを使えるようにする

投稿者: | 2013/09/18

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_PATHGraphicsMagick++.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

いろいろと手間取ったけれども何とか動くようになりました(^^)


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です