MATLABで複数枚画像の表示方法

このQ&Aのポイント
  • MATLABを使用して複数枚の画像を表示する方法について教えてください。
  • 画像の表示にはimread関数を使用し、画像ファイルのパスを指定します。
  • 複数枚の画像を表示する場合は、画像の切り替えタイミングと表示する画像の選択を制御するコードを記述する必要があります。
回答を見る
  • ベストアンサー

MATLABで画像の表示方法

a = imread('C:\Users\Labmember2011\Desktop\MatlabStuffs\2266057137_611af466d4.jpg'); b = imread('C:\Users\Labmember2011\Desktop\MatlabStuffs\pc.jpg'); cont = 0; %フレームカウンター figure; tic; %ストップウオッチタイマの開始 while(toc<10) %10秒の間アニメーション if toc > cont*0.5 %0.5秒間隔でフレームを更新 if mod(cont, 2) %カウンターが偶数の時はaの画像を表示 image(a); else %奇数の場合はbの画像を表示 image(b); end drawnow() %確実に描画させる cont = cont+1; end pause(0.05); %CPU使用率が上がるのが嫌な場合はpauseを入れる。(フレーム更新の精度はその分落ちる) end で実行したら2枚の画像が切り替わるプログラムが実行されました。 複数枚画像の表示方法はどのように書いたら実行できますか? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Kules
  • ベストアンサー率47% (292/619)
回答No.1

複数枚画像の表示方法、の意味があいまいなのですが… ・今はカウンターが偶数か奇数かで2枚の画像を表示させているが、カウンターの値によって3枚以上の画像が切り替わるようにしたい …まあこっちだったら対して難しくないですよね(笑)mod(cont,3)とかしてif elseif endでつないでもいいですし、switch文を使うという手もありますよね。 ・今はカウンターが偶数の時はaの画像を、奇数の時はbの画像を表示するようにしているが、 カウンターが偶数の時はaとcの画像を、奇数の時はbとdの画像を表示するようにしたい こちらの場合はちょっとだけ面倒ですね。自分でいろいろいじってもいいんですが、 subplotを使うのがお手軽だと思います。 ax=[subplot(2,1,1);subplot(2,1,2)]; としますとカレントfigureに縦に2つaxesが出来ます。 あとは、 image(a)としているところを image(a,'Parent',ax(1)) image(c,'Parent',ax(2)) とすることで上の軸にaが、下の軸にcが表示されます。 ただ、imageは追加の入力としてプロパティの設定ができますが、その時はx,y,Cの形で指定しないといけなかったような気がするので、上の書き方だとエラーが出るかも知れません。 aとb、cとdはサイズ変わらないんですかね?変わらないのであれば、 whileに入る前に Asize=size(a); Csize=size(c); h_i(1)=image([1,Asize(2)],[1,Asize(1)],zeros(size(a)),'Parent',ax(1)); h_i(2)=image([1,Csize(2)],[1,Csize(1)],zeros(size(c)),'Parent',ax(2)); としておき、 image(a) とする代わりに set(h_i(1),'Cdata',a); とすると画像が切り替わります。 まあwhile文の中で Asize=size(a); Csize=size(c); をその都度実行して image([1,Asize(2)],[1,Asize(1)],zeros(size(a)),'Parent',ax(1)); の形で毎回イメージを実行してもいいんですけどね。 「こういうことじゃないんだよ」とか「こういうこともしてみたいんだよ」とかありましたら補足願います。 参考になれば幸いです。

siro81655260
質問者

お礼

ありがとうございます

関連するQ&A

  • MATLABのGUI、画像表示について

    GUIDEで設計したGUIのaxes1に画像を表示させようとしているのですが、 simulink上のMファイルに a = imread('a.jpg'); image(a); のようにimageを記述して、GUI上のオブジェクトを指定するにはどうしたらよいのでしょうか?? 新たにfigureを立ち上げるのではなく、GUIに表示させる方法がわからず困っています。 初心者なのでわからないことだらけですが、よろしくお願いします!

  • MATLABで画像の評価

    今MATLABでプログラムを書いているんですが、テンキーで被験者に回答してもらいテキスト形式に書き出す様にするには、どう書いたら良いのですか? ソースプログラムは A=imread('1.bmp'); B=imread('2,bmp'); window=Screen(0,'OpenWindow'); % ウィンドウの初期化 Screen(window,'FillRect',[255 255 255]); % ウィンドウ全体を白で塗る pause Screen(window,'FillRect',[255 255 255]);Screen(window,'PutImage',A);WaitSecs(1.0);Screen(window,'FillRect',[255 255 255]);Screen(window,'PutImage',B);pause Screen('CloseAll'); % 終了 この先がわかりません。 困っています。教えてください。よろしくお願いします。

  • MATLAB 画像表示に関して

    卒業研究にてMATLABを使用しています。 MATLAB初心者です。 Aの画像とその他の画像を比べる評価実験を行う予定です。 Aの画像を細かく定義 Bの画像を細かく定義 Aの画像を表示させる 5秒たったら、画像をリセットして Bの画像を表示 画像をリセットして終了 というところまでは不格好ながらにもかけました。 これを、 A、B、C、Dの画像を細かく定義 Aの画像5秒間表示後、 リセット(真っ黒の状態に)して ランダムに(B、C、D、E)いずれかの画像を表示させる リセットして終了 という形に変えたいのですが、うまく行きません。 CDEの画像を定義した後、どのようにすればいいのでしょうか? ご教授いただきたく思います。

  • MATLABで連続した画像の取り込み方

    1つのJPGファイルを取り込み、表示させるやり方は I = imread('sample000.jpg'); imshow(I) これででき、作業を書くと for t=1:1:10 if(t==1) A=imread('sample000.jpg'); imshow(A) hold on [xa, ya]=textread('sample01.txt','%d %d','headerlines',10); end plot(xa(t,1), ya(t,1), 'r+'); if(t==10) hold off end end ということになります。 10回ループさせるのは、sample01.txtの10行目以降の中身が10個ずつの座標だからです 以下はsample01.txtの中身を簡単に書いたものです ...         ※9行目 test coordinates  ※10行目 44 54        ※11行目 45 46 53 43 55 41 58 38 61 33 66 36 69 41 72 47 73 52        ※20行目 10         ※21行目 46 54        ※22行目 48 52 ... ... 77 51        ※31行目 10         ※32行目 47 52        ※33行目 ... ... という感じです。 で、本題ですが sample000.jpg sample001.jpg sample002.jpg ... ... など複数のjpgファイルをループを使って連続して取り込み、作業したいときは、どういうコマンドでどういうループを作ればいいでしょうか? 具体的には 1枚目のsample000.jpgファイルを読み込みhold on、sample01.txtの11行目から20行目の座標を赤い点でプロットし、最後にhold off 2枚目のsample001.jpgファイルを読み込みhold on、sample01.txtの22行目から31行目の座標を赤い点でプロットし、最後にhold off 3枚目の... というループです。 下手な説明でごめんなさい、誰かMATLABの画像処理に詳しい方がいたら応答よろしくおねがいします。

  • texでの画像表示のタイミング

    \pause \begin{figure} \includegraphics{filename} \end{figure} または \begin{figure} \pause \includegraphics{filename} \end{figure} としても画像が最初から表示されてしまいます。 画像の表示を後からしたい(\pauseでするようにタイミングを指定したい)場合にはどうすればよいのでしょうか。

  • 異なるフレームへの画像表示

    こんにちは。初心者なのでやりたいことが伝わるかわかりませんがよろしくお願いします。 HPビルダーを使ってHPを作成中です。 フレームを利用していますが、(A.B.C)Bフレームのに画像1(絵)をおき、この上をポインターが通ると フレームAの所定の場所に画像が現れるようにしたいのです。 Bフレームの画像(絵)は1だけでなく2.3.4.5.6.といった具合にたくさんありそれぞれが示す画像がAフレームの場所に入れ替わって表示されるということはできるのでしょうか? Bフレームの画像1≠Aフレーム画像ではありません。 このようなことができる機能に名前はありますか? よろしくお願いします。

  • リンク付画像を所定の時間に切り替える方法

    はじめて質問します。よろしくお願いします。 JavaScriptを使ってリンク付の画像を所定の時間に切り替える方法を教えてください。 具体的には 10:00~11:30 は A.jpg を表示。 クリックすると A.dpl というプレイリストを実行。 11:30~15:00 は B.jpg を表示。 クリックすると B.dpl というプレイリストを実行。 15:00~19:00 は C.jpg を表示。 クリックすると C.dpl というプレイリストを実行。 19:00~22:00 は D.jpg を表示。 クリックすると D.dpl というプレイリストを実行。 この時間、画像、リンクは後々変更したいので変更箇所が少なくすむ管理しやすいものにしたいです。 また、これとは別で画像はA.jpgのみでリンクだけを時間によって変えるということは可能でしょうか? すみませんが、ご教授お願いします。

  • 複数画像の個別の表示時間について

    お世話になります。 例えば【 a.jpg 】、【 b.jpg 】、【 c.jpg 】という3枚の画像を5秒毎に切り替えるというのは理解できますが、【 a.jpg 】は2秒間表示、【 b.jpg 】は3秒間表示、【 c.jpg 】は4秒間表示といったように、個別に表示時間を設定する方法をご教示いただきたく存じます。 例えば、アクセスしたタイミングからカウントする方法でも構いませんし、【 a.jpg 】の表示を終了してから秒数をカウントして【 b.jpg 】を表示させるという方法でも構いません。 最終的には、MySQLで設定した引数をSELECTして組み込もうと思っています。 できればヒントとなるソースをご提示していただければ助かりますが、参考になるサイト等を ご提示いただけるだけでも幸いです。 どうぞよろしくお願い申し上げます。

  • フレーム内に画像を表示する際、画像をフレームサイズに合わせたい。

    Webページで、フレームを使ってるんですが、フレーム内に表示する画像のサイズがマチマチで(画像の元サイズがとても大きかったりして)見栄えが良くありません。 main.htmlというソースを置いて、そこからタイトル表示用HTMLと画像リスト用HTMLをフレーム内に表示。 画像リスト用HTMLからAタグで画像表示用フレームに画像を表示するよう記述。 単にこれだけだと、ブラウザごとに画像サイズがフレーム内に収まるよう調整されたり、されなかったりなんですよ。 どうにか、強制的にフレーム内に表示させるようにする方法を教えてください。 ------------------------------------------------- main.htmlの抜粋↓ ------------------------------------------------- <frameset rows="50,*"> <form name="frm1"> <frame src="title.html" name="ue"> <frameset cols="187,*"> <frame src="list.html" name="hidari"> <frame src="./img/1.jpg" name="migi"> </frameset> </form> </frameset> ------------------------------------------------- list.htmlの抜粋↓ ------------------------------------------------- <a href="img/2.jpg" target="migi">19</a>

  • 別フレームにJPG画像をhtmlページ無しでセンターに表示する方法

    宜しく御願いします。 ページをフレームで縦切り2分割にして、左フレームの画像をクリックすると 右フレームに、画像が大きく表示されるホームページを作っていますが、 右フレームに表示される画像が左上寄りになります。 右フレームに表示される画像を、htmlページを用いて表示すれば センターに出来ることは判っているのですが、JPG画像のみの表示で センターにする方法はあるのでしょうか。 左フレームのソースは以下のような物です。 ******************************* <TABLE width="204"> <TR> <TD nowrap><A href="a.jpg" target="sub"><IMG src="as.jpg" height="100" width="75"></A></TD> <TD nowrap></TD></TR> <TR> <TD nowrap></TD> <TD nowrap><A href="s.jpg" target="sub"><IMG src="ss.jpg" height="75" width="100"></A></TD></TR> <TR> ******************************** 以下省略 ご存じの方、宜しく御願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう