How can I display two images at once?

558 ビュー (過去 30 日間)
Chelsea
Chelsea 2014 年 11 月 5 日
コメント済み: hsinchia chen 2022 年 1 月 11 日 2:36
Hi,
I can't seem to figure out how to display two images at the same time. I've read about subplots, figures, etc., but I just want to show two pictures side by side on the screen. Below is what I've tried with Psychtoolbox, but if you have any suggestions I would appreciate it!
win = Screen('OpenWindow',0); % Full sized screen
black=BlackIndex(win);
Screen('FillRect', win, black);
imagedata1=imread('11a.BMP');
imagedata2=imread('12b.BMP');
TexturePointer1=Screen('MakeTexture',win,imagedata1);
TexturePointer2=Screen('MakeTexture',win,imagedata2);
clear imagedata1;
clear imagedata2;
Screen('DrawTexture',win,TexturePointer1, 0);
Screen('DrawTexture',win,TexturePointer2, 0);
Screen('Flip',win);
WaitSecs(10);
sca;
  6 件のコメント
Image Analyst
Image Analyst 2016 年 9 月 23 日
Start your own question and be sure to post your two images.

サインインしてコメントする。

回答 (2 件)

Image Analyst
Image Analyst 2014 年 11 月 5 日
Lots of ways
subplot(1,2,1);
imshow(imagedata1);
subplot(1,2,2);
imshow(imagedata2);
or
imshow([imagedata1, imagedata2]); % Assumes same number of rows in each.
Or you can use imshowpair() or imfuse().
  3 件のコメント
Image Analyst
Image Analyst 2021 年 1 月 21 日
subplot() sets up a grid of "slots" where you can place a graph or image. The first number is the number of rows or images, the second number is the number of columns in the layout, and the third number is the plot number in natural left-to-right, top-to bottom manner. So if you wanted an array of 12 plots with 3 rows and 4 columns, it would be
subplot(3, 4, n);
where n is defined like in the 3,4 layout below
1 2 3 4
5 6 7 8
9 10 11 12
You can also combine numbers, so for example if you wanted one image to take up the whole 3rd row, you could do
subplot(3, 4, 9:12);
imshow(rgbImage);
If you wanted a plot in the 4th column you'd do
subplot(3, 4, [4,8,12]);
plot(x, y);

サインインしてコメントする。


Anand
Anand 2014 年 11 月 5 日
Use imshowpair like Image Analyst suggests and you should be all fine.
The following gives you a side-by-side display:
imshowpair(im1, im2, 'montage')
  3 件のコメント
hsinchia chen
hsinchia chen 2022 年 1 月 11 日 2:36
imshowpair(imrotate(im1,90), imrotate(im2,90), 'montage');
set(gca,'view',[90 90])

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by