Montage of two Images

17 views (last 30 days)
Sreejoe Kaniyamparambil
Sreejoe Kaniyamparambil on 18 May 2017
Answered: Hannan Awan on 17 Oct 2020
Hello Everyone, I have a code that finds an image from a path. That image is then cropped. The Cropped image is then converted into a Binary Image, I would like to stitch these pictures together as one figure. I tried using Montage. I however recieve errors using Montage. here is my code :
filePattern = fullfile(myFolder, '*.tif');
imageFiles = dir(filePattern);
for k = 1:length(imageFiles)
ImagebaseFileName = imageFiles(k).name; %image name
image_original = fullfile(myFolder, ImagebaseFileName); %original image
%fprintf(1, 'Now reading %s\n', fullFileName);
imageArray = imread(image_original);
image_cropped=imcrop(imageArray, [0 0 632 1024]); %Cropping Image
%%Binary Gradient Mask
[~, threshold] = edge(image_cropped, 'sobel');%Binary Gradient Mask
fudgeFactor = .5;
image_bin_grad_mask = edge(image_cropped,'sobel', threshold * fudgeFactor); % Binary Gradient Mask Image
montage(image_bin_grad_mask,image_cropped); % Display image.
end
Also I would like to store the created montage as a seperate image.Any suggestions. Your help, effort and time are much appreciated.
Best Regards

Accepted Answer

Nut
Nut on 18 May 2017
Hi,
if you need only to display the two images side by side you can use subplot.
Instead, if you need to join the two images together into a unique one, I think the cat function may be helpful for you:
https://it.mathworks.com/help/matlab/ref/cat.html
  3 Comments
Nut
Nut on 18 May 2017
Edited: Nut on 18 May 2017
You're welcome, I'm glad it works for you. Thanks for accepting my answer, kind regards.

Sign in to comment.

More Answers (2)

Rik
Rik on 18 May 2017
Montage is rather picky about the image format. It wants the following input format: (rows,columns,colors,pages). What you tried to do is therefor impossible with montage. If your goal is to show the two images side by side, you can use the subplot functionality.
subplot(2,1,1)%(total_rows,total_cols,current_index)
imshow(image_bin_grad_mask)
title('Original image')
subplot(2,1,2)
imshow(image_cropped)
title('Cropped image')
  2 Comments
Rik
Rik on 18 May 2017
You said in your question you wanted to put both a cropped image and the original in one frame. That means you have unequal image sizes.
If you want to make a montage of a video file, you need to make sure that the 3rd dimension is the color dimension and the forth dimension is the different frames. If you have those two switched around, you can use permute to change the order.
montage_friendly_format=permute(video,[1 2 4 3]);

Sign in to comment.


Hannan Awan
Hannan Awan on 17 Oct 2020
use figure; before using montage command.

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by