MATLAB Answers

Jason
0

Montage with Raster Scan

Asked by Jason
on 22 May 2018
Latest activity Answered by 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.

2 Answers

KSSV
Answer by 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
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
on 23 May 2018
If images are present, filenames are enough to show.
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.


Answer by 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.