Home › Category Archives › 環境
Sponsored Link

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

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

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

(14) Octave開発バージョンをインストール

Octave開発途中版のインストール手順

■Octaveソースファイルのrepositoryにアクセスするため、Mercurialをインストール。

MercurialのHPはこちら
http://mercurial.selenic.com/wiki/Mercurial

ここからソースファイルをダウンロード
http://mercurial.selenic.com/release/?M=D

HPに書かれた手順でインストール実行
http://mercurial.selenic.com/wiki/UnixInstall

途中、こんなのが出た。

python runrst hgmanpage  --halt warning \
          --strip-elements-with-class htmlonly hg.1.txt hg.1
abort: couldn't generate documentation: docutils module is missing
please install python-docutils or see http://docutils.sourceforge.net/
make[1]: *** [hg.1] Error 255
make[1]: Leaving directory `/home/user/tmp/mercurial-2.7/doc'
make: *** [doc] エラー 2

python-docutilsなるものが必要だそうなのでインストールする。
http://wiki.dreamhost.com/Mercurial

sudo easy_install docutils

■Octave開発版を入手

「Using the Development Sources」に従ってソースファイルを入手
http://www.gnu.org/software/octave/get-involved.html

hg clone http://www.octave.org/hg/octave

■Octave開発版をビルド

手順はココに書かれています。
http://hg.savannah.gnu.org/hgweb/octave/file/tip/etc/HACKING

実行順に以下に列挙します。

cd octave
./bootstrap
mkdir .build
cd .build
../configure
make
make check
$ ./run-octave
$ ./config.status

GUI版Octaveが起動したけれども、期待していたGUIなソースラインデバッグができない…
しかもファイルツリーからファイルを選択してもエディタが起動しない…
機能実装中でリリースはまだまだ先のようです。
使わせていただく立場で好き勝手言って申し訳ありませんが、「開発者の皆様、がんばってください!」
http://octave.dogrow.net/wp-content/uploads/2013/09/gui_octave_20130921.gif

(4) パッケージのインストール方法

octaveには、とても便利なスクリプトがいろいろと用意されています。これらの便利スクリプトは、パッケージとして機能ごとにまとめられており、好きなものをダウンロード&インポートして使います。

パッケージを活用すると 「やりたいことを短時間でできる」 が実現できます。

(1) パッケージはこちらの Octave-Forge のサイトからダウンロードできます。
http://octave.sourceforge.net/packages.php

(2) パッケージのインストール方法はこちらに書かれています。
http://www.gnu.org/software/octave/doc/interpreter/Installing-and-Removing-Packages.html

インストール先のマシンがインターネットに接続している場合、Octave-Forge から直接インストールできます。

octave> pkg install -forge xxxxx

xxxxx は actuarial や image など、上記(1)に記述されているパッケージ名に置き換えます。

パッケージ内に実装された関数を使用したい場合、pkg load でパッケージをロードする必要があります。

octave> pkg load xxxxx

インストール済みのパッケージをすべてロードしたい場合、all を指定します。

octave> pkg load all

(2) はじめてのOctave起動

オクターブを起動するには octave と入力します。

[user@dog-server ~]$ octave
GNU Octave, version 3.6.4
Copyright (C) 2013 John W. Eaton and others.
This is free software; see the source code for copying conditions.
There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  For details, type `warranty'.

Octave was configured for "x86_64-unknown-linux-gnu".

Additional information about Octave is available at http://www.octave.org.

Please contribute if you find this software useful.
For more information, visit http://www.octave.org/get-involved.html

Read http://www.octave.org/bugs.html to learn how to submit bug reports.

For information about changes from previous versions, type `news'.
octave:1>

これで起動完了です!
ちなみに私の環境では octaveはここにインストールしています。

[user@dog-server ~]$ which octave
/usr/local/bin/octave
[user@dog-server ~]$

octave起動後、octaveのプロンプトでコマンドを入力できます。

octave:1> 1+2+3
ans =  6
octave:2>

[Ctrl]+[D] を押下もしくは、exit と入力すると、octaveが終了してLinux Shellのプロンプトに戻ります。

octave:2> exit
[user@dog-server ~]$

(1) CentOS6.4にOctave3.6.4をインストール

(1) Octaveのサイトに行く

(2) Downloadページに移動

(3) Sourcesに記載されているftpサイトに移動


ftp://ftp.gnu.org/gnu/octave

(4) octave-3.6.4.tar.gzをダウンロード

(5) 圧縮ファイルを解凍

$ tar zxf octave-3.6.4.tar.gz

(6) 事前に必要なライブラリ類をインストール

必要ライブラリ一覧は、こちらの Octave wiki ページを参照のこと。
http://wiki.octave.org/Building

(7) ユーザー権限でconfigureを実行

configureのパラメーターを確認

$ ./configure -h | less

configureを実行

$ ./configure --prefix=/usr/local --with-quantum-depth=32 --enable-shared --disable-static --with-magick-plus-plus=yes

(8) ユーザー権限でmakeを実行

$ make

(9) ユーザー権限でmake checkを実行

$ make check

(10) 管理者権限でmake installを実行

$ sudo make install
$ sudo ldconfig

※ライブラリが不足する場合、configure実行時にエラーが発生します。
エラーが発生した場合は、必要に応じて不足しているライブラリをインストールします。

※FLTKをビルドする場合、–enable-shared 指定が必須。でないとoctaveビルド時にリンクエラーが発生する。

$ ./configure --prefix=/usr/local --enable-shared