Create a struct that contain ABCD features for an image dataset

1 次查看(过去 30 天)
Hello guys, I've been trying to import the ABCD features of all my image dataset but when I open the csv file I only find one row and I don't know how I can fix it
imds = imageDatastore(Source,"IncludeSubfolders",true,"FileExtensions",".jpg");
imds1 = imageDatastore(Source1,"IncludeSubfolders",true,"FileExtensions",".jpg");
% lire toutes les images avec une boucle
for i= 1 :size(imds.Files,1)
I = readimage(imds,i);
gray=rgb2gray(I);
binaryImage=imbinarize(rescale(gray));
binaryImage = bwareafilt(binaryImage, 1);
segmented=readimage(imds1,i);
asymmetry=ASYMMETRY(binaryImage,segmented);
Colors_Score=Couleur(segmented);
Borders=borders(binaryImage);
Diameter=diameter(binaryImage);
ABCD_Features.Asymmetry1=asymmetry.A1;
ABCD_Features.Asymmetry2=asymmetry.A2;
ABCD_Features.Color=Colors_Score;
ABCD_Features.Border1=Borders.B1;
ABCD_Features.Border2=Borders.B2;
ABCD_Features.Border3=Borders.B3;
ABCD_Features.Diameter1=Diameter.D1;
ABCD_Features.Diameter2=Diameter.D2;
ABCD_Features=struct2table(ABCD_Features);
writetable( ABCD_Features, 'ABCD_Features.csv');
end
ASYMMETRY, Couleur, Borders and diamter are my functions that I use, I will be very grateful if you can help me with this

采纳的回答

Image Analyst
Image Analyst 2022-5-12
You need to tack on that table to a growing one.
imds = imageDatastore(Source,"IncludeSubfolders",true,"FileExtensions",".jpg");
imds1 = imageDatastore(Source1,"IncludeSubfolders",true,"FileExtensions",".jpg");
% lire toutes les images avec une boucle
for i= 1 :size(imds.Files,1)
I = readimage(imds,i);
gray=rgb2gray(I);
binaryImage=imbinarize(rescale(gray));
binaryImage = bwareafilt(binaryImage, 1);
segmented=readimage(imds1,i);
asymmetry=ASYMMETRY(binaryImage,segmented);
Colors_Score=Couleur(segmented);
Borders=borders(binaryImage);
Diameter=diameter(binaryImage);
ABCD_Features.Asymmetry1=asymmetry.A1;
ABCD_Features.Asymmetry2=asymmetry.A2;
ABCD_Features.Color=Colors_Score;
ABCD_Features.Border1=Borders.B1;
ABCD_Features.Border2=Borders.B2;
ABCD_Features.Border3=Borders.B3;
ABCD_Features.Diameter1=Diameter.D1;
ABCD_Features.Diameter2=Diameter.D2;
thisTable = struct2table(ABCD_Features);
% Add this table on to our growing, master table.
if i == 1
masterTable = thisTable;
else
masterTable = [masterTable; thisTable];
end
end
% Write out master table.
writetable( ABCD_Features, 'ABCD_Features.csv');
It's untested so it might need some debugging.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Convert Image Type 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by