How to read multiple jpg images in a loop?
Afficher commentaires plus anciens
hello, i am a novice user in matlab my question is: i have stored some 100s of images in some folder and i want to read it one-by-one.how can i do this?
17 commentaires
Xylo
le 6 Mar 2014
You can do this easily..... before doing this program, you have to keep all of your image in a folder and rename them by any common char+number concatenation form (like a1.jpg, a2.jpg,a3.jpg....). after that you just use strcat() function for reading the path name, and then read the images.
for i=1:10 %suppose there are 10 image
file_name=dir(strcat('J:\multimedia\photo\')); % the path tht u hv imges
im=imread(strcat('J:\multimedia\photo\',file_name(i).name));
imtool(im);
end
anish m r
le 3 Mar 2015
hi while doing this i am getting an error like Error using imread (line 366) Can't open file "E:\Image." for reading; you may not have read permission.
Error in Untitled (line 3) im=imread(strcat('E:\Image',file_name(i).name));
pls help me to solve this
Thanke
Walter Roberson
le 29 Nov 2016
im=imread( fullfile('E:\Image', file_name(i).name ) );
Yogesh Bhandari
le 10 Mar 2017
Modifié(e) : Image Analyst
le 10 Mar 2017
Hi, I am trying to implement similar code of reading images and later try to randomly select one of the images. However, while performing the reading of images, I am getting an error :Cannot open file "\\ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Researchdata\Test case for image extraction\ImaGES_FOR_QUESTIONS." for reading. You might not have read permission.
Code Snippet
for i=1:15
file_name=dir(strcat('\\ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Researchdata\Test case for image extraction\ImaGES_FOR_QUESTIONS'));
im=imread(strcat('\\ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Researchdata\Test case for image extraction\ImaGES_FOR_QUESTIONS',file_name(i).name));
imtool(im)
end
if possible could you please guide me through this.
Walter Roberson
le 10 Mar 2017
Do not use strcat to create your file name. Use fullfile().
Image Analyst
le 10 Mar 2017
Yogesh, perhaps this but I'm getting zero files found there:
folder = '//ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Researchdata\Test case for image extraction\ImaGES_FOR_QUESTIONS'
files = dir(fullfile(folder, '*.*'))
for k=1:length(files)
thisFileName = files(k).name
im=imread(thisFileName);
imshow(im);
drawnow;
end
Yogesh Bhandari
le 20 Mar 2017
Modifié(e) : Yogesh Bhandari
le 20 Mar 2017
Thank you for your comments. However, I slightly modified my code and have attached the updated code.
images=imageSet('\\ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Rese archdata\Test case for image extraction\ImaGES_FOR_QUESTIONS');
n=numel(images.ImageLocation);
idx=randi(n);
im=imread(images.ImageLocation(idx).jpg);
But, it still am giving the following error
Struct contents reference from a non-struct array object.
Error in codeResearch2 (line 8)
im=imread(images.ImageLocation(idx).jpg);
could you please help me through this.
Walter Roberson
le 20 Mar 2017
Modifié(e) : Walter Roberson
le 20 Mar 2017
im = read(images(1), idx);
Yogesh Bhandari
le 20 Mar 2017
Modifié(e) : Yogesh Bhandari
le 20 Mar 2017
Dear Walter, Thank you it works. However could you please explain the reason for this.
Is it something related to the fact that its 1-D array having row fixed and the number of columns would be changing
Walter Roberson
le 20 Mar 2017
The ImageLocation property is not the list of images: it is the list of directories in which the images are to be found.
Indexing the imageset at (1) talks about the first directory out of the list. read() with an index is what is used to imread() in the individual images from the directory.
Yogesh Bhandari
le 20 Mar 2017
Modifié(e) : Yogesh Bhandari
le 20 Mar 2017
Thank You Walter, for your writing detailed response. However based on your previous comments I prepared another code
images='\\ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Researchdata\Test case for image extraction\ImaGES_FOR_QUESTIONS';
jpgfiles=dir(fullfile(images,'\*.jpg*'))
n=numel(jpgfiles);
idx=randi(n);
im=imread(jpgfiles(idx).name)
However, I am receiving the error
Error using imread (line 349)
File "a1.jpg" does not exist
Error in codeResearch2 (line 6)
im=imread(jpgfiles(idx).name)
Yogesh Bhandari
le 21 Mar 2017
I guess I resolve the query following reference from your other post. (PS:thanks) Following is the code snippet.
images ='\\ad.uillinois.edu\engr\instructional\yogeshb2\Desktop\Researchdata\Test case for image extraction\ImaGES_FOR_QUESTIONS';
jpgfiles=dir(fullfile(images,'\*.jpg*'))
n=numel(jpgfiles);
idx=randi(n);
im=jpgfiles(idx).name
im1=imread(fullfile(images,im))
imshow(im1)
Gebra maryam Alehegn
le 13 Mai 2017
Déplacé(e) : DGM
le 20 Déc 2022
Question Please everyone how to extract color and texture features from multiple image and prepare for as traning?
Walter Roberson
le 13 Mai 2017
Déplacé(e) : DGM
le 20 Déc 2022
We have given a few links above on how to process sets of files. So you just have to take your existing functions that extract color and texture features and put a loop around them.
SHUBHDEEP KAUR
le 12 Sep 2018
the following code shows single image at a time ..how to display all the jpg images at once
Anil Varma
le 13 Déc 2019
showing error
Error using randi
First input must be a positive scalar integer value IMAX, or two integer values [IMIN IMAX] with IMIN
less than or equal to IMAX.
Error in test (line 9)
idx=randi(n);
shweta banait
le 3 Déc 2020
Déplacé(e) : DGM
le 20 Déc 2022
how to display five images in matlab
Réponse acceptée
Plus de réponses (5)
Karthik Karri
le 6 Mar 2014
3 votes
You can rename all images like..im1,im2,im3.....im100. To read 100 images one by one, run a loop 100 times with i as variable from 1 to 100 and in imread, m=imread(['folder_path\im' num2str(i) '.jpg']). I hope I answered your question.
1 commentaire
archana
le 6 Mar 2014
chaitra naveen
le 20 Mar 2017
1 vote
can you please help me out to read 100's of images from folder to matlab and resize them to 100x100.
1 commentaire
Image Analyst
le 4 Mai 2017
Use imresize in a loop like the loops given in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
Muhammad Sohail
le 27 Nov 2017
filelist = dir('Training data');
for i=1 : length(filelist)
for i=1 : length(filelist)
filename = filelist(i);
if ~strcmp(filename.name , '.') && ~strcmp(filename.name , '..')
filename.name
end
end
1 commentaire
Haseeb Hassan
le 20 Mar 2019
Simple and easy
Haseeb Hassan
le 30 Juin 2019
for i=1:16; % we have 16 images we have in or folder
clc;clear;
images ='C:\Users\Haseeb\Desktop\input\for_loop_input';
jpgfiles=dir(fullfile(images,'\*.jpg*'));
n=numel(jpgfiles(i));
im=jpgfiles(i).name
im1=imread(fullfile(images,im));
imshow(im1);
end
Here is the simple and short code, which will acces your images from your folder in a sequence.
1 commentaire
shital shinde
le 21 Fév 2020
Actually it gives error as
Array indices must be positive integers or logical values.
n=numel(jpgfiles(i)); // for this line.
will you tell me why ?
Xylo
le 6 Mar 2014
You can do this easily..... before doing this program, you have to keep all of your image in a folder and rename them by any common char+number concatenation form (like a1.jpg, a2.jpg,a3.jpg....). after that you just use strcat() function for reading the path name, and then read the images.
for i=1:10 %suppose there are 10 image
file_name=dir(strcat('J:\multimedia\photo\')); % the path tht u hv imges
im=imread(strcat('J:\multimedia\photo\',file_name(i).name));
imtool(im);
end
8 commentaires
archana
le 7 Mar 2014
Xylo
le 11 Mar 2014
ya..... offcrse u can. just use imwrite function to save. like this:- imwrite(im,'your path address','name1','jpg'); here name1:-name of the that you want to save
Xylo
le 11 Mar 2014
and use this code in the for loop, that is after im=imread(...) code
Omar Ahmad
le 8 Déc 2014
Xylo sir,
I pasted the path very correctly in the im=imread.... code but it gives me an error saying you may not have read permission. I even changed the path to another drive..but same error.. why does that occur? plz help
Omar Ahmad
le 8 Déc 2014
I got the above problem right. I have one more:
How can I subtract and find the image difference one from another. e.g. from gray_2.jpg and gray_1.jpg? I mean once reading these, how can we separate them into individual images?
Walter Roberson
le 29 Nov 2016
Isha Pandya comments to Omar Ahmad:
I am not able to solve this problem. Please help.
Walter Roberson
le 29 Nov 2016
Isha Pandya, please show your current code and describe what difficulty you are observing.
Zahoor abbas
le 9 Juil 2018
How I can access the images from two folders by using one for loop
Catégories
En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!