From: Lukáš Jiřiště Date: Tue, 20 Aug 2024 13:20:00 +0000 (+0200) Subject: Refactor get_aggregate_images out X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=8d0676dde1389bdaf1e59d941d63c346c8068db3;p=Bubble_column.git Refactor get_aggregate_images out --- diff --git a/Bubliny.m b/Bubliny.m index 865dece..5db35aa 100755 --- a/Bubliny.m +++ b/Bubliny.m @@ -37,63 +37,21 @@ ResFile = [res_path, ResFile]; FileType = '*.png'; +main_wb = waitbar(0, 'Whole processing progress'); % process all directories in cycles for i=1:nSelectedDirectory FileName=([DirectoryName '/' SelectedDirectory{i} '/' FileType]); FFiles = dir(FileName); % Loads files to struct FFiles(1).name, FFiles(1).folder, FFiles(1).date - i s casem - ImageName = FFiles(1).name; - start_time = name_to_time(FFiles(1).name); - Figure = imread([FFiles(1).folder '/' ImageName]); - %%D_num=str2double(SelectedDirectory{i}(21)); % position of camera - - [image_width, image_height] = size(Figure); - sumfig = zeros(image_width, image_height); - minfig = Figure; - maxfig = Figure; - - step = 10; - startFile = 1; - endFile = numel(FFiles); - wait_bar = waitbar(0, ''); - set(gca(wait_bar).Title, 'Interpreter', 'none'); - for j=startFile:step:endFile - ImageName = FFiles(j).name; - Figure = imread([FFiles(j).folder '/' ImageName]); - - waitbar((j - startFile)/(endFile - startFile), wait_bar, ['Preproccessing images from meassurement ' num2str(i) '/' num2str(nSelectedDirectory)]); - - sumfig = sumfig + double(Figure); - minfig = min(minfig, Figure); - maxfig = max(maxfig, Figure); - end - - close(wait_bar); - - meanfig = uint8(sumfig / ((endFile - startFile) / step + 1)); + [minfig, maxfig, meanfig] = get_aggregate_images(FFiles); changefig = maxfig - minfig; - - %{ - figure - subplot(2,2,1); - title('Pixel maxima'); - imshow(maxfig); - subplot(2,2,2); - title('Pixel minima'); - imshow(minfig); - subplot(2,2,3); - title('Pixel means'); - imshow(meanfig); - subplot(2,2,4); - title('Difference between max and min'); - imshow(changefig); - %} - mask = get_mask(changefig, meanfig); figure(); imshow(meanfig .* uint8(mask)); + waitbar((i - 0.5)/nSelectedDirectory, main_wb); + meter = get_meter(maxfig, mask); [~, calm_level] = min(mean(double(meanfig), Weights = mask)); @@ -101,19 +59,23 @@ for i=1:nSelectedDirectory wait_bar = waitbar(0, ''); set(gca(wait_bar).Title, 'Interpreter', 'none'); intensity = []; - step = 10; + startFile = 1; + endFile = numel(FFiles); + step = 1; N = floor((endFile - startFile)/step) + 1; for j = 1:N file_ind = startFile + (j - 1) * step; ImageName = FFiles(file_ind).name; Figure = imread([FFiles(file_ind).folder '/' ImageName]); - waitbar(j/N, wait_bar, ['Proccessing images from meassurement ' num2str(i) '/' num2str(nSelectedDirectory)]); + waitbar(j/N, wait_bar, 'Proccessing the images'); intensity = mean(double(Figure), Weights = mask); [water(j), bubble_top(j), bubble_bot(j)] = get_levels(intensity); end close(wait_bar); + waitbar(i/nSelectedDirectory, main_wb); figure plot(meter([water; bubble_top; bubble_bot]')); end +close(main_wb); diff --git a/get_aggregate_images.m b/get_aggregate_images.m new file mode 100644 index 0000000..1859ae3 --- /dev/null +++ b/get_aggregate_images.m @@ -0,0 +1,54 @@ +function [min_img, max_img, mean_img] = get_aggregate_images(files, start_file, end_file, step) + if nargin < 2 + start_file = 1; + end + if nargin < 3 + end_file = numel(files); + end + if nargin < 4 + step = 10; + end + + image_name = files(1).name; + image = imread([files(1).folder '/' image_name]); + + [image_width, image_height] = size(image); + sum_img = zeros(image_width, image_height); + min_img = image; + max_img = image; + + step = 10; + start_file = 1; + end_file = numel(files); + wait_bar = waitbar(0, ['Aggregating the images']); + for j=start_file:step:end_file + image_name = files(j).name; + image = imread([files(j).folder '/' image_name]); + + waitbar((j - start_file)/(end_file - start_file), wait_bar); + + sum_img = sum_img + double(image); + min_img = min(min_img, image); + max_img = max(max_img, image); + end + + close(wait_bar); + + mean_img = uint8(sum_img / ((end_file - start_file) / step + 1)); + + %{ + figure + subplot(2,2,1); + title('Pixel maxima'); + imshow(max_img); + subplot(2,2,2); + title('Pixel minima'); + imshow(min_img); + subplot(2,2,3); + title('Pixel means'); + imshow(mean_img); + subplot(2,2,4); + title('Difference between max and min'); + imshow(changefig); + %} +end