How to put together multiple number of images with graphs on top of them in a single vertical montage?

32 Ansichten (letzte 30 Tage)
the images need to be read.
It's a line plot.
the line separates two regions in the image.
like the image below there are multiple number of images with various length of the orange part.
I need to plot the black line on top of the image and display all the images together one after another.
  5 Kommentare
Adam Danz
Adam Danz am 5 Jul. 2022
I suggest editing your question to make the goal clearer. It will increase your chances of getting help and will decrease the amount of time spent by volunteers looking into the wrong problem.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Leepakshi
Leepakshi am 28 Feb. 2025
Hi Darshan,
I was unable to understand from your question but seems that you want to overlay line plots on multiple images and display all the images in a vertical sequence.
The below workaround might resolve your issue:
1. Loop through each image file in imageFiles.
2. Read the image using imread.
3. Create a new figure with imshow to display the image.
4. Use plot to overlay a line on the image. The line is defined by its x and y coordinates. In this example, the line is horizontal and centered vertically on the image.
5. Capture the current figure (image with the line plot) using getframe and store it in montageImages.
% Assume images are stored in a cell array
imageFiles = {'image1.png', 'image2.png', 'image3.png'}; % Add your image filenames
numImages = numel(imageFiles);
montageImages = cell(1, numImages); % To store images with plots
for i = 1:numImages
% Read the image
img = imread(imageFiles{i});
% Create a figure and plot the image
figure('Visible', 'off'); % Create an invisible figure
imshow(img); hold on;
% Define the line plot (example line)
x = [10, size(img, 2) - 10]; % Example x-coordinates
y = [size(img, 1)/2, size(img, 1)/2]; % Example y-coordinates
plot(x, y, 'k-', 'LineWidth', 2); % Plot a black line
% Capture the plot as an image
frame = getframe(gca);
montageImages{i} = frame.cdata; % Store the image with plot
close; % Close the figure
end
% Display all images in a vertical montage
montage(montageImages, 'Size', [numImages, 1]);

Kategorien

Mehr zu Images finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by