Images not performing all functions inside for loop!!

1 view (last 30 days)
This is my coding done to read all images from a folder and allow each image to perform a list of feature extraction function and then export each value to excel sheet. But unfortunately my coding shoes value of m = 16(no of images in the folder) but only gives values for one image. Only 6 values(6 features extracted) is exported to excel sheet instead of 96 values. How do i fix this?
Dir = 'C:\Users\Administrator\Desktop\Tinna\PROJECT\soil_jpg\DataSet';
images = dir(fullfile(Dir,'*.jpg'));
for m = 1 : length(images)
Img = imread(fullfile(Dir,images(m).name));
Img = imadjust(Img,stretchlim(Img));
Img = imresize(Img,[256,256]);
hsvHist = hsvHistogram(Img);
autoCorrelogram = colorAutoCorrelogram(Img);
color_moments = colorMoments(Img);
% for gabor filters we need gray scale image
img = double(rgb2gray(Img))/255;
[meanAmplitude, msEnergy] = gaborWavelet(img, 4, 6); % 4 = number of scales, 6 = number of orientations
wavelet_moments = waveletTransform(Img);
Feature_Vector = [hsvHist autoCorrelogram color_moments meanAmplitude msEnergy wavelet_moments];
whos Feature_Vector
F1 = mean2(hsvHist(:));
F2 = mean2(autoCorrelogram(:));
F3 = mean2(color_moments(:));
F4 = mean2(meanAmplitude(:));
F5 = mean2(msEnergy(:));
F6 = mean2(wavelet_moments(:));
end
xlswrite('testdata.xlsx',[F1 F2 F3 F4 F5 F6]);

Accepted Answer

KSSV
KSSV on 23 May 2017
Edited: KSSV on 23 May 2017
You are savin gonly the last image features, you need to save all the image features into a cell/matrix.
Dir = 'C:\Users\Administrator\Desktop\Tinna\PROJECT\soil_jpg\DataSet';
images = dir(fullfile(Dir,'*.jpg'));
F1 = cell(length(images),1) ;
F2 = cell(length(images),1) ;
F3 = cell(length(images),1) ;
F4 = cell(length(images),1) ;
F5 = cell(length(images),1) ;
F6 = cell(length(images),1) ;
for m = 1 : length(images)
Img = imread(fullfile(Dir,images(m).name));
Img = imadjust(Img,stretchlim(Img));
Img = imresize(Img,[256,256]);
hsvHist = hsvHistogram(Img);
autoCorrelogram = colorAutoCorrelogram(Img);
color_moments = colorMoments(Img);
% for gabor filters we need gray scale image
img = double(rgb2gray(Img))/255;
[meanAmplitude, msEnergy] = gaborWavelet(img, 4, 6); % 4 = number of scales, 6 = number of orientations
wavelet_moments = waveletTransform(Img);
Feature_Vector = [hsvHist autoCorrelogram color_moments meanAmplitude msEnergy wavelet_moments];
whos Feature_Vector
F1{m} = mean2(hsvHist(:));
F2{m} = mean2(autoCorrelogram(:));
F3{m} = mean2(color_moments(:));
F4{m} = mean2(meanAmplitude(:));
F5{m} = mean2(msEnergy(:));
F6{m} = mean2(wavelet_moments(:));
end
xlswrite('testdata.xlsx',[F1 F2 F3 F4 F5 F6]);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!