画像の拡大
【概要】
画像の拡大を行う Octave のプログラム例を示す。
Octave の次の関数を使う。
- imread: 画像ファイルの読み込み
- rgb2gray: RGB 画像を濃淡(グレースケール)画像に変換
- imshow: 画像の表示
- meshgrid: メッシュグリッド形式の配列(格子点の座標)の生成
- interp2: 2 次元の補間(既知の格子点データから中間の値を求める処理)
【目次】
【関連する外部ページ】
必見 Web ページ: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/
必見 Web ページ: http://www.eecs.berkeley.edu/Research/Projects/CS/vision/bsds/
【サイト内の関連情報】
Octave のトップページ
第1章 前準備
Octave のインストールが済んでいること。
* プロンプトの表示を変えたいときは、次のように操作する。
PS1('> ')
* Octave のインストールによっては、Octave の起動時に毎回次の操作(image パッケージの読み込み)を行う必要がある。
pkg load image
第2章 説明に使う濃淡画像
画像ファイルを変数 rgb に読み込み、RGB 画像を濃淡画像に変換する。
* 「lena_std.jpg」の部分は、使う画像ファイル名に書き換えて使うこと。
[rgb, immap, alpha] = imread("lena_std.jpg");
mono = rgb2gray( rgb );
* Windows では「imread("t:/lena_std.jpg");」のように、ドライブ名を含むパスで指定する。
第3章 画像の拡大
◆ 濃淡画像の場合
補間の方法を指定する「"pchip"」の部分は、「"linear"」などに変えられる。
[XX, YY] = meshgrid(1:512, 1:480);
[XX2, YY2] = meshgrid(100:0.1:151.1, 100:0.1:147.9);
imshow(interp2( XX, YY, mono, XX2, YY2, "pchip" ));
◆ カラー画像の場合
rgb2(:,:,1) = interp2( XX, YY, rgb(:,:,1), XX2, YY2, "pchip" );
rgb2(:,:,2) = interp2( XX, YY, rgb(:,:,2), XX2, YY2, "pchip" );
rgb2(:,:,3) = interp2( XX, YY, rgb(:,:,3), XX2, YY2, "pchip" );