How do I subplot figures and Title Figures
5 views (last 30 days)
Show older comments
I have a code that is averaging 20 slightly different frames, all in all the code produces 25 total frames and is very messy when ran. I would like to somehow subplpot the figures on one plot so it is more organized. I would like to show figures 1,5,10,15,20,21,22,23,24,25 and the rest I do not want to show up when I run the code and I would also like them to be plotted on one plot or two as well as add a title to the individual figures. If someone could help me out it would be greatly appricieated.
For example something that kind of looks like this:
close all;
clear all;
clc;
load('undergraduate_data.mat');
for index = 1:1:size(photoshift,3);
figure;
imshow(photoshift(:, :, index), []);
grid on;
daspect([1 1 1]);
end
fixed = photoshift(:, :, 1);%refrence image
figure('Name', 'Fixed Image -Frame 1');
imshow(fixed, []);
%creating an unregistered image by distorting
theta =165;
rot = [cosd(theta) sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1];
sc = 2.3;
scale = [sc 0 0; 0 sc 0; 0 0 1];
sh = 0.5;
shear = [1 sh 0; 0 1 0; 0 0 1];
tform = affine2d(shear*scale*rot);
moving = imwarp(fixed,tform);
figure('Name', 'original');
imshow(fixed, []);
figure('Name', 'Transformation');
imshow(moving,[]);
%estimating registration required to bring images in allignment
tformEstimate=imregcorr(moving,fixed);
Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate, 'OutputView', Rfixed);
figure;%figure24
imshowpair(fixed,movingReg,'montage');
%Final Registration
[optimizer, metric] = imregconfig('monomodal');
movingRegistered = imregister(moving,fixed,'affine',optimizer,metric,'InitialTransformation',tformEstimate);
A = figure('Name', 'Averaging');
imshowpair(fixed, movingRegistered,'Scaling','joint');
save Averaging.mat A
0 Comments
Answers (3)
Yongjian Feng
on 6 Dec 2021
Try this:
subplot(2, 3, 1); % there are 2x3 images, this is the first one
imshow('the_first_image.png'); % show first
title('Original');
subplot(2, 3, 2); % the second image
imshow('the_second_image.png');
title('Frame 1');
.....
2 Comments
David Hill
on 6 Dec 2021
Look at subplot() command.
subplot(1,2,1); imshow(image1);
subplot(1,2,2); imshow(image2);
0 Comments
yanqi liu
on 7 Dec 2021
yes,sir,may be use montage or subplot,such as
close all;
clear all;
clc;
% load('undergraduate_data.mat');
a = imread('cameraman.tif');
b = imread('rice.png');
photoshift(:,:,1) = a;
photoshift(:,:,2) = b;
figure; montage(photoshift, 'BackgroundColor', 'w', 'BorderSize', [2 2]);
fixed = photoshift(:, :, 1);%refrence image
figure('Name', 'Fixed Image -Frame 1');
subplot(1, 5, 1); imshow(fixed, []);
%creating an unregistered image by distorting
theta =165;
rot = [cosd(theta) sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1];
sc = 2.3;
scale = [sc 0 0; 0 sc 0; 0 0 1];
sh = 0.5;
shear = [1 sh 0; 0 1 0; 0 0 1];
tform = affine2d(shear*scale*rot);
moving = imwarp(fixed,tform);
subplot(1, 5, 2); imshow(fixed, []);
subplot(1, 5, 3); imshow(moving,[]);
%estimating registration required to bring images in allignment
tformEstimate=imregcorr(moving,fixed);
Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate, 'OutputView', Rfixed);
subplot(1, 5, 4);
imshowpair(fixed,movingReg,'montage');
%Final Registration
[optimizer, metric] = imregconfig('monomodal');
movingRegistered = imregister(moving,fixed,'affine',optimizer,metric,'InitialTransformation',tformEstimate);
subplot(1, 5, 5);
imshowpair(fixed, movingRegistered,'Scaling','joint');
0 Comments
See Also
Categories
Find more on Geometric Transformation and Image Registration 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!