MATLAB: How to process multiple images and produce output files

image processingImage Processing Toolboxloopsoutputs

I have a sequence of images I am trying to process through the following code and then produce a jpg of the image once it has been processed. There are approximatley 100 images in the folder, named sequentially, so an automatic process/loop is required, any help would be appreciated!
I = imread('Test_3(10fps)-1.jpg');
I = rgb2gray(I);
I2 = uint8(filter2(fspecial('gaussian'), I));
J = imread('Test_3(background)-1.jpg');
J2 = uint8(filter2(fspecial('gaussian'), J));
K = imabsdiff(I2,J2);
K2 = imadjust(K,stretchlim(K),[0.05,0.5]);
imwrite(K2,'image_1')

Best Answer

%code
% Save all images name in a sequence manner before doing the operation
path_directory='folder_name'; % 'Folder name' Must be in current directory
original_files=dir([path_directory '/*.jpg']);
for k=1:length(original_files)
filename=[path_directory '/' original_files(k).name];
I=imread(filename)
I=rgb2gray(I);
I2=uint8(filter2(fspecial('gaussian'), I));
J=imread('Test_3(background)-1.jpg');
J2=uint8(filter2(fspecial('gaussian'), J));
K=imabsdiff(I2,J2);
K2=imadjust(K,stretchlim(K),[0.05,0.5]);
destination='D:\......\folder_name\im'; %Complete path to save image
%save images as im1.png, im2.jpg etc
imwrite(K2,[destination,num2str(k),'.jpg']);
end