Skip to content
Snippets Groups Projects
Select Git revision
  • 6e56a00d518ce8e033ed2edcf7305d5139f71384
  • master default protected
2 results

mainAmund.m

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    mainAmund.m 2.42 KiB
    % Will go through all files in a folder and get the file path to all files given a file extension.
    % Source: https://matlab.fandom.com/wiki/FAQ#How_can_I_process_a_sequence_of_files.3F
    % Specify the folder where the files live.
    myFolder = uigetdir;
    excel_file = 'GroundTruth.xlsx';
    T = readtable(excel_file);
    %% Do the algorythm over all test images
    num_test = 202;
    distance = 300;
    % Check to make sure that folder actually exists. Warn user if it doesn't.
    if ~isfolder(myFolder)
     errorMessage = sprintf('Error: The following folder does not exist:\n%s\nPlease specify a new folder.', myFolder);
     uiwait(warndlg(errorMessage));
     myFolder = uigetdir(); % Ask for a new one.
     if myFolder == 0
     % User clicked Cancel
     return;
     end
    end
    % Get a list of all files in the folder with the desired file name pattern.
    filePattern = fullfile(myFolder, '*.jpg'); % Change to whatever pattern you need.
    theFiles = dir(filePattern);
    % Just make sure user have not typed too large of num_test
    if num_test > length(theFiles)
     num_test = length(theFiles);
     errorMessage = sprintf('Error: It appears that your specified num is larger than the number of images in the folder.');
     uiwait(warndlg(errorMessage));
    end
    ratios = zeros(1, num_test); % empty list. Is going to be used to store the ratios of overlaps
    successRates = zeros(1, num_test);
    % Loop through the images and do whatever
    for k = 1 : num_test
     baseFileName = theFiles(k).name;
     fullFileName = fullfile(theFiles(k).folder, baseFileName); % Path to image
     fprintf(1, 'Now reading %s\n', baseFileName);
    
     img = imread(fullFileName);
    
     % Do what ever you want to the image here
     % ----
    
     [img_proc, img_box] = detectFish(img);
    
     % find the corresponding box for that image in marius' excel file:
     m_box_x1 = T.Var4(k);
     m_box_x2 = T.Var5(k);
     m_box_y1 = T.Var2(k);
     m_box_y2 = T.Var3(k);
    
     m_box = [m_box_x1, m_box_y1, m_box_x2-m_box_x1, m_box_y2-m_box_y1];
     ratios(k) = bboxOverlapRatio(img_box, m_box); % replace one of the 'img_box' with Marius' box
     overlap_ratio = ratios(1,k); % just print the overlap value for this image to screen
     
     if ratios(1,k) >= 0.55 % everything over 0.7 is concidered good enough - a success
     successRates(1,k) = 1;
     else
     successRates(1,k) = 0;
     end
    
     img_proc = insertShape(img_proc,'FilledRectangle', m_box,'Color','green'); % insert Marius' rectangle into output image
    
     %figure,
     %subplot(1,2,1), imshow(img), title('original');
     %subplot(1,2,2), imshow(img_proc), title('processed');
    
     % ---
    
    end