MATLABによる画像処理3
ポイント
画像の回転、反転
さてさて、今回は以前やった画像処理の続きみたいな感じで。
前回は平滑化、鮮鋭化を行いました。
今回は画像を回転させる事と、反転させる事について学びます。
画像を回転させるとか反転させるとか、難しそうな事を言っていますが、
前回までで、画像は行列データとして扱われている事については学びました。
回転や反転はその行列の並びを変えればいいだけです。
例えば、90度回転させようと思えば、
X = | 1 2 3 |
| 4 5 6 |
| 7 8 9 |
このような行列を
X = | 3 6 9 |
| 2 5 8 |
| 1 4 7 |
というように配置を変えればいいだけの話なのです。
ここでMATLAB。MATlix-LABoratoryの出番です。
行列操作に関しては関数がしっかり用意してくれていますので、
それを使うだけという事になります。
実際に回転させる関数はどういう物なのかといいますと、
という関数が用意されています。
使い方としましては、
という風になります。
Aは回転させたい行列を入れます。
rot90は反時計回りに90度回転します。
kは「k×90」度反時計回り回転させるタメに使います。
指定しないとkは1と判断されます。
それでは回転させてみましょう。
今回使った素材の画像は、

この画像はIEEEの研究用標準画像です。
では実際のプログラムは以下のように
function image_proc4
%
% 画像処理
% 画像を回転させる
%
imagedata=imread('Airplane.bmp');
imagedata=double(imagedata);
imagedata2=rot90(imagedata);
image(imagedata2);
colormap(gray(256));
|
基本的には前回までと大差のないプログラムになっております。
処理の部分だけが違うって感じですかね。
では出来上がった画像を以下に。

反時計回りに90度回転しているのがわかりますね?
それでは、同じ画像を使って今度は反転させてみましょう。
反転の場合も先ほどと同様に行列を操作するだけになります。
そして、反転させるタメの関数も用意されています。
これをやれば、左右方向に反転させる事が出来ます。
同様の手法で上下方向に反転させる関数もありますが、
ここでは、左右方向だけやってみます。
ちなみに、上下方向の場合は、
です。気付いた方もいると思いますが、
FLIPは共通で、lr(left-right)とud(up-down)です。
使い方は全く同じなので、今回は左右だけで。
では実際のプログラムは以下のように
function image_proc5
%
% 画像処理
% 画像を反転させる
%
imagedata=imread('Airplane.bmp');
imagedata=double(imagedata);
imagedata2=fliplr(imagedata);
image(imagedata2);
colormap(gray(256));
|
で、反転させて出来上がった画像は、

こんな感じです。
はい。MATLABはこんなにも簡単に行列操作が出来るんです。