How to automate the following set of commands?

Hey all! I'm fairly new to MATLAB and I'm working on a small project where I have to convert a database of images into a downsampled dataset of fixed resolution and other image properties. So for the following purpose, I am currently using the following commands in sequence for one image.
rec = db.info('filename');
img = freeviewing.analysis.getImg(rec,56.9781,32.0502,screen);
imwrite(img, 'example.png')
So before setting up the commands, I'm calling a image wrapper set up previously, which loads the downloaded image with the appropriate parameters through this command
>> db = imgdb.geisler('Directorypath');
Is there a way to automate the first three commands for every image file and save it as separate files? An example code which I can use would be much appreciated! Thanks!

 Accepted Answer

Sure. Just write a function. This link will probably show you how to do that:
maybe something like
function img = MyCustomFunction(db, fullFileName)
rec = db.info('filename');
img = freeviewing.analysis.getImg(rec,56.9781,32.0502,screen);
imwrite(img, fullFileName); % Save it to disk with the specified file name.

4 Comments

Thanks for the answer! With this, wouldn't I still need to input a new file each time I call the function? Or can I do something like *.filetype when calling the function?
You need to have fullFileName be the name of just one file, so have a loop over all filenames and in the loop pass the filename of that iteration into this function.
That's cool! Do you have an example code I can refer to for looping?

Sign in to comment.

More Answers (0)

Categories

Find more on Image Processing and Computer Vision 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!