how can make a dataset of images?

I provided a code that gets an initial image as input and gives me 4 images as result. I should run this code as loop that user enters an initial images. in this loop every time I should save all the results because I want to make a dataset of these images and then do feature extraction. how can I do this? Can I use structure for this? I think that we can imagine every image as a matrix but I don't how we can do this .I think I should have a dataset of images like this:
but I dont know how can make this.do you think this idea is rational?or I should change my approach.
I appreciate your helps and supports in advanced.

 Accepted Answer

A struct is fine.
datastruct = struct('IMG1', [], 'IMG2', [], 'IMG3', [], 'IMG4', []);
while true
[filename, pathstr] = uigetfile('Select an image');
if ~ischar(filename) %user canceled
break;
end
fullname = fullfile(pathstr, filename); %it might not be in current directory
... process file named by fullname
datastruct(end+1).IMG1 = image1;
datastruct(end).IMG2 = image2;
datastruct(end).IMG3 = image3;
datastruct(end).IMG4 = image4;
end

More Answers (2)

Image Analyst
Image Analyst on 15 Jun 2015
Why can't you do feature extraction immediately after you create them, and not worry about saving these intermediate images? Why do you have to save them all? If, for some reason you do, then I'd just save them in .mat files until you need them at some later time.

7 Comments

thanks.because maybe,these features not be suitable and if I can't get the the result that I want, I am forced to change them. so if I save my images, it is easier for me. about .mat I can't understand?Is there any way?I think that the only way is structure!!! I appreciate your helps and supports in advanced.
You could also use cell arrays:
datacell{end+1} = {image1, image2, image3, image4};
and then datacell{K}{3} for the third image of the K'th set.
thanks dear Walter Roberson and Image Analyst. I did in this way :
datastruct = struct('IMG1', [], 'IMG2', [], 'IMG3', [], 'IMG4', []);
..............................my loop code........................................
datastruct(end+1).IMG1 = img1;
datastruct(end).IMG2 = img2;
datastruct(end).IMG3 = img3;
datastruct(end).IMG4 = img4;
and after four iteration my dataset is like below do you think it is right for dataset?
I appreciate your helps and supports in advanced.
I suggest starting with
datastruct = struct('IMG1', {}, 'IMG2', {}, 'IMG3', {}, 'IMG4', {});
thanks dear.yes you are right.
Hi
I am trying out this code, but how I tell matlab the location of my images ? (I am them stored in a folder). Thanks in advance

Sign in to comment.

mukul jain
mukul jain on 18 Feb 2017
algorithm for identifying near surface/sub surface targets using hyperspectral image through Matlab. please guide me

Tags

Community Treasure Hunt

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

Start Hunting!