金子邦彦研究室プログラミングOctave の活用Octave での画像ファイルの入出力

Octave での画像ファイルの入出力

Octave での画像ファイルの入出力を行う.

Octave バージョン 3.2.4 では,file_in_path.m の修正が必要になる場合があります.

前準備

Octave のインストール

必見 Web ページ: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/

必見 Web ページ: http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/

画像ファイルの読み込みと表示

カラー画像ファイルの読み込みと表示の例

ここではカラー画像ファイルの読み込みと表示を説明する.

※ ここでは JPEG ファイルを使っていますが,たいていの種類の画像ファイルを扱うことができる.

Octave バージョン 3.2.4 で「warning: isstr is obsolete and will be removed from a future version of Octave, please use ischar instead」というエラーメッセージが出て,結局 plot での描画がうまくできないことがあります.

謝辞:http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html で公開されたいた「Octave for windows メモ」を参考にしました.ありがとうございます. プロットの前に,次の操作を行うことで,このエラーを回避できる場合があります.


pkg unload oct2mat

■ Octave 3.2.4, Ubuntu の実行例

[rgb, immap, alpha] = imread("/tmp/lena_std.jpg");
map = gray(256);
colormap(map);
imshow(rgb);

[image]

■ Octave バージョン 3.2.4, Windows の実行例

Windows では、ファイル名の指定が違うだけ(ドライブ名を付ける).

[rgb, immap, alpha] = imread("r:/lena_std.jpg");
map = gray(256);
colormap(map);
imshow(rgb);

[image]

[image]

カラー画像ファイルの R プレーンの表示の例

1 が RED, 2 が GREEN, 3 が BLUE

■ Octave 3.2.4, Ubuntu の実行例

[rgb, immap, alpha] = imread("/tmp/lena_std.jpg");
map = gray(256);
colormap(map);
imshow(rgb(:,:,1));

[image]

■ Octave 3.2.4, Windows の実行例

Windows では、ファイル名の指定が違うだけ(ドライブ名を付ける).

[rgb, immap, alpha] = imread("r:/lena_std.jpg");
map = gray(256);
colormap(map);
imshow(rgb(:,:,1));

[image]

[image]

画像ファイルの書き出し

※ ここでは JPEG ファイルと PNG ファイルを使っていますが,たいていの種類の画像ファイルを扱うことができる.

※ 画像ファイルの確認には,ImageMagick の display コマンドが便利です.

カラー画像ファイルの書き出しの例

■ Octave 3.2.4, Ubuntu の実行例

[rgb, immap, alpha] = imread("/tmp/lena_std.jpg");
imwrite(rgb, "/tmp/hoge.png");

[image]

■ Octave バージョン 3.2.4, Windows の実行例

Windows では、ファイル名の指定が違うだけ(ドライブ名を付ける).

[rgb, immap, alpha] = imread("r:/lena_std.jpg");
imwrite(rgb, "r:/hoge.png");

[image]

Octave 3.0.5, Linux の実行例

Octave のバージョンが古い場合,imwrite の引数の並びが変わります.先にファイル名,あとに,フレームデータの並び

rgb = imread("/tmp/lena_std.jpg");
imwrite("/tmp/hoge.png", rgb():,:,1), rgb():,:,2), rgb():,:,3));

[image]

画像ファイルの情報取得 (Octave 3.1.51 以上のみ)

画像ファイルの情報取得には,imfinfo 関数を使う. ここでは,画像ファイル名 r:/lena_std.jpgWindows の場合は) を指定します.

※ ここでは JPEG ファイルを使っていますが,たいていの種類の画像ファイルを扱うことができる.

※ プロンプトを変えたいときは「PS1('> ')」のようなコマンドを実行してください.

画像ファイルの情報取得の例

■ Ubuntu での実行例


info = imfinfo("/tmp/lena_std.jpg")
info.Width
info.Height

Windows での実行例


info = imfinfo("r:/lena_std.jpg")
info.Width
info.Height

[image]

[image]

[image]