Grouping images from multiple folders

1 view (last 30 days)
shivasakthi
shivasakthi on 13 Jan 2017
Commented: Walter Roberson on 14 Jan 2017
I have 120 folders each containing 46 images belonging to 46 categories. I have to take these individual images and make 46 folders (each for a separate category). Kindly help me with the code for this. Thanks in advance.
  3 Comments
shivasakthi
shivasakthi on 14 Jan 2017
Edited: shivasakthi on 14 Jan 2017
A small correction to the question. There are 119 folders, each containing 46 images. Yes the image categories are already known. The images are arranged in perfect order so that every two consecutive images belong to a different class. It means in every 119 folders, there are 23 classes (out of the 46 images). Now I need to create 23 different folders so that the first two images from every 119 folder should go to the first of 23 folders. The third and fourth image from every 119 folders should go to the 2nd of the 23 folders and so on. Kindly help me with the matlab code for this.
Walter Roberson
Walter Roberson on 14 Jan 2017
I suspect that you are using MS Windows,and in particular an NTFS file system. NTFS does not document the order that it stores files, and I gather that it is permitted for disk optimization utilities to change the order of files within a directory. There is no real meaning to "consecutive images" in the system, or rather the order can change at any time.
I would suggest to you that you have been thinking that the files are arranged in alphabetical order. I speculate that the information about which class any given file belongs to is somehow represented as part of the file name. If that is correct then it would help if you could describe the structure of the file names and which part includes the needed information.

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 14 Jan 2017
"The first two images" is ambiguous.
But to create 23 folders, use sprintf() and mkdir()
for k = 1 : 23
folder = sprintf('Folder %d', k);
if ~exist(folder, 'dir')
mkdir(folder);
end
end
  2 Comments
shivasakthi
shivasakthi on 14 Jan 2017
Many thanks image analyst, for helping with creating the 23 folders. The issue is to copy every two consecutive images from each of the 119 folders to these 23 different folders as I explained before. Kindly help me with matlab code for this.
Image Analyst
Image Analyst on 14 Jan 2017
You should use one of the two code samples in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F Have the loop step in steps of 2 instead of 1.

Sign in to comment.

Categories

Find more on Convert Image Type 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!