imshow command will not display my images

Hi all, I am currently trying to randomly present 21 images, one after the other, all located within the same folder. When I run my code, Matlab does not display any errors, but no images are shown either. I currently have the following code;
dirname= 'C:\Users\User\Documents\MATLAB\stimuli\';
d=dir([dirname '*.jpg']);
for i= randperm(numel(d))
imshow(d(i).name)
pause(2);
end

Réponses (3)

KSSV
KSSV le 29 Jan 2019
d=dir([dirname '*.jpg']);
for i= randperm(numel(d))
I = imread(d(i).name) ;
imshow(I)
pause(2);
end

1 commentaire

Stephen23
Stephen23 le 29 Jan 2019
Modifié(e) : Stephen23 le 29 Jan 2019
Note that imshow accepts a filename as its first inpout argument. Using another image display function does not resolve the actual issue with the code in the question (the missing path).

Connectez-vous pour commenter.

Walter Roberson
Walter Roberson le 29 Jan 2019
dirname= 'C:\Users\User\Documents\MATLAB\stimuli\';
d=dir(fullfile(dirname, '*.jpg'));
for i = randperm(numel(d))
imshow( fullfile(dirname, d(i).name) )
pause(2);
end
Stephen23
Stephen23 le 29 Jan 2019
Modifié(e) : Stephen23 le 29 Jan 2019

0 votes

The reason is very simple: you forgot to use the path when you tried to read the file:
D = 'C:\Users\User\Documents\MATLAB\stimuli';
S = dir(fullfile(D,'*.jpg'));
for k = randperm(numel(S))
imshow(fullfile(D,S(k).name))
pause(2);
end
Note that it is recommended to avoid using i for a loop iterator, as this is the name of the imaginary unit. Using fullfile is recommended instead of string concatenation:

Catégories

En savoir plus sur Convert Image Type dans Centre d'aide et File Exchange

Modifié(e) :

le 29 Jan 2019

Community Treasure Hunt

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

Start Hunting!

Translated by