How to make this code in loop - Image processing

4 views (last 30 days)
YEMY on 2 Nov 2020
Commented: YEMY on 3 Nov 2020
Hello, I have to process in loop many drone images.
I succeeded to get a script that works, but I could not make it work in loop to process the whole images in the folder.
I need to save the mask 2 as a JPG image after each loop. For opening multiple images in one folder, that I know how to do it. for the rest I don't know how to make a loop.
close all, clear all
cd 'D:\TEST\1-1000_0.35ms_200625\';
im = imread('DJI_0204.jpg');
lab = rgb2lab(im);
ab = lab(:,:,2:3);
ab = im2single(ab);
nColors = 2;
% repeat the clustering 3 times to avoid local minima
pixel_labels = imsegkmeans(ab,nColors,'NumAttempts',2);
mask1 = pixel_labels==1;
cluster1 = im .* uint8(mask1);
title('Objects in Cluster 1');
mask2 = pixel_labels==2;
cluster2 = im .* uint8(mask2);
title('Objects in Cluster 2');
imwrite(cluster2, 'mask_test1.jpg')

Answers (1)

Sudhakar Shinde
Sudhakar Shinde on 3 Nov 2020
Loop to read images:
my_folder =pwd; %Folder path where images are present
Image = {};
for n = 1:numel(filenames)
Image{end+1} = imread(fullname);
%Use your code here from converting to lab colors
% ...
You can use your code in above for loop .
  1 Comment
YEMY on 3 Nov 2020
I didn't have problems with importing files. I had issues with making for loops to automate the processing. By the way I think I managed to do it after several tries. Thank you anyway.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!