MATLAB Answers

Montage with Raster Scan

12 views (last 30 days)
Jason
Jason on 22 May 2018
Answered: Jason on 23 May 2018
Hello, I have a cell array of images obtained by scanning in a raster scan as illustrated below
I want to create a montaged image, and can do it successfully when xsteps & ysteps =3 (so 9 images in the image Array "imgArray")
montageImage = [imgArray{1}, imgArray{4}, imgArray{7}; imgArray{2}, imgArray{5}, imgArray{8}; imgArray{3}, imgArray{6}, imgArray{9}];
However, I want it generalised for any values of xstep and ystep.

  0 Comments

Sign in to comment.

Answers (2)

KSSV
KSSV on 23 May 2018
Read about montage in the documentation, there is an option of specifying size..with this you can show them in your desired step/ size.
montage(fileNames, 'Size', [m n]);

  3 Comments

Jason
Jason on 23 May 2018
Hi, thanks for your reply. I did actually consider this first, but my image files are not on disk and hence no filenames. they are in memory in a cell array.
KSSV
KSSV on 23 May 2018
If images are present, filenames are enough to show.
Jason
Jason on 23 May 2018
Hi, so they are saved in appdata and I get the cell array of images by:
imgArray=getappdata(0,'stack')
What do I pass as filenames, just "imgArray"
OK trying this doesn't work:
figure
montage(imgArray, 'Size', [3 3]);
The specified filename is not a string.

Sign in to comment.


Jason
Jason on 23 May 2018
OK, I couldn't get the "montage" function to work so used this instead
ny=ysteps; nx=xsteps;
D=[];
for j=1:ny
C=[];
for i=1:nx
idx=1+ (i-1)*ny;
idx=idx+(j-1)
B=imgArray2{idx};
C = horzcat(C,B);
end
D=vertcat(D,C);
end
figure
imshow(D)

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!