Display a set of random images in one out of 4 specific coordinates

2 visualizaciones (últimos 30 días)
Hello everyone,
I am actually working on a task where I want to show images in random order and individually in one of the four quadrants of the screendisplay (so 4 specific coordinates).
I can already display the images in one coordinate but I havent been able to switch from one quadrant to the other for each image.
This is the code that I have so far:
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(Matlabimagetrial, '*.jpg'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
% Randomize the order
sortOrder = randperm(length(theFiles));
theFiles = theFiles(sortOrder);
for k = 1 : length(theFiles)
baseFileName = theFiles(k).name;
fullFileName = fullfile(Matlabimagetrial, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
% Try to show this file by showing in a specific quadrant,
for x=0:0;y=0:0;
plot(x,y);grid on;
set(gca,'XLim',[-20 20]);
set(gca,'YLim',[-20 20]);
end
hold on
data=imread(fullFileName);
image(flipud(data), 'XData', [0 20], 'YData', [0 20]); %Define the coordinates in which you want your image to appear
pause(5); % Time for which the image is displayed (we can change it as we wish)
set(gcf,'Visible','off');
set(gcf,'Visible','on');
end
  5 comentarios
Johannes Hougaard
Johannes Hougaard el 29 de Abr. de 2022
plotno is not a function :)
It's just a variable I used to index randomly into the positions cell array.
I'll post as an answer.
Nicolas Vetter
Nicolas Vetter el 29 de Abr. de 2022
Sorry I meant randperm so the function associated to plotno

Iniciar sesión para comentar.

Respuesta aceptada

Johannes Hougaard
Johannes Hougaard el 29 de Abr. de 2022
Editada: Johannes Hougaard el 29 de Abr. de 2022
As described in my comment this should do the trick by storing your four coordinate sets in the cell array positions and indexing using the randperm function with inputs (4,1).
% Get a list of all files in the folder with the desired file name pattern.
filePattern = fullfile(Matlabimagetrial, '*.jpg'); % Change to whatever pattern you need.
theFiles = dir(filePattern);
% Randomize the order
sortOrder = randperm(length(theFiles));
theFiles = theFiles(sortOrder);
fh = figure; % Define the figure you want to use
ah = axes(fh); % Define the axes in the figure to allow handling of axis visibility in the loop
positions = {[44 525] [44 40] [1110 40] [1110 525]};
for k = 1:length(theFiles)
cla(ah); % clearing the axes
baseFileName = theFiles(k).name;
fullFileName = fullfile(Matlabimagetrial, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
data=imread(fullFileName);
plotno = randperm(4,1);
image(ah,data);
ah.YAxis.Visible = 'off';
ah.XAxis.Visible = 'off';
fh.Position(1:2) = positions{plotno};
drawnow % needed to show the image in the loop.
pause(5);
end

Más respuestas (0)

Categorías

Más información sobre Entering Commands en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by