- ベストアンサー
MATLABで複数枚画像の表示方法
- MATLABを使用して複数枚の画像を表示する方法について教えてください。
- 画像の表示にはimread関数を使用し、画像ファイルのパスを指定します。
- 複数枚の画像を表示する場合は、画像の切り替えタイミングと表示する画像の選択を制御するコードを記述する必要があります。
- みんなの回答 (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)); の形で毎回イメージを実行してもいいんですけどね。 「こういうことじゃないんだよ」とか「こういうこともしてみたいんだよ」とかありましたら補足願います。 参考になれば幸いです。
お礼
ありがとうございます