MyEnigma

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

MATLABで複数の画像を読み込みたい時

はじめに

MATLABにおいて

imread(filename)

で画像を読み込むことができるのは,有名な話です.

しかし,複数の画像を一気に,または順に読み込ませたい時はどうでしょう.

たかが十数枚なら,

<span style="font-weight:bold;">imread(filename)</span>
<span style="font-weight:bold;">imread(filename)</span>
<span style="font-weight:bold;">imread(filename)</span>
<span style="font-weight:bold;">imread(filename)</span>
<span style="font-weight:bold;">imread(filename)</span>
<span style="font-weight:bold;">imread(filename)</span>
....


とコピペすればいいですが,さすがに数千枚になるとうんざりします.

そんな時は,このようにループに応じて画像を読み込みましょう.

for i=1:ImgN
    %Image Read
    Imgfilename = strcat('./',num2str(i),'.jpg');
    A=imread(Imgfilename);
    image(A)
end

まず初めに読み込みたい画像列の名前を1.jpg,2.jpg,3.jpg,........

とようにしましょう.

そしてそれらの画像群がmファイルと同じディレクトリにいることにします.

(まあ,パスを変えるだけでどこにあってもいいんですけど)

そして以上のサンプルプログラムのように

ループのインデックスを使用して読み込む画像の名前とします.

ここでnum2strが重要です.

この関数を使用して,ループインデックスを文字列に変換して読み込む画像の名前にしています.

ちなみにImgNが読み込む画像の数です.

この方法を利用することにより,多数の画像列を順に読み込むことができます.

これで画像列を使用してopencvのように画像処理ができますね.

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com