From: Lukáš Jiřiště Date: Mon, 14 Oct 2024 10:57:37 +0000 (+0200) Subject: Create separate script for meter creation X-Git-Url: https://git.ljiriste.work/?a=commitdiff_plain;h=213cfa02d5f410e4a499652dad9a1db0280b63a3;p=Bubble_column.git Create separate script for meter creation The script create_meter saves the (polynomial) coefficients with the writematrix function as *.mtr file. The wanted meter is then loaded interactively in the main script. This commit is analogous to the refactoring of mask creation. --- diff --git a/Bubliny.m b/Bubliny.m index 43cbd46..05f300d 100755 --- a/Bubliny.m +++ b/Bubliny.m @@ -34,6 +34,7 @@ ResFile = [res_path, ResFile]; %} mask = load_mask(); +meter = load_meter(); FileType = '*.png'; @@ -57,8 +58,6 @@ for i=1:nSelectedDirectory waitbar((i - 0.5)/nSelectedDirectory, main_wb); - meter = get_meter(maxfig, mask); - [~, calm_level] = min(mean(double(meanfig), Weights = mask)); wait_bar = waitbar(0, ''); diff --git a/create_meter.m b/create_meter.m new file mode 100644 index 0000000..f23d0d7 --- /dev/null +++ b/create_meter.m @@ -0,0 +1,19 @@ +clear all + +last_path = get_last_path(); +[filenames, path] = uigetfile([last_path '/*.mtr'], ... + 'Select all files for meter creation', 'MultiSelect', 'on'); +update_last_path(path); +mask = load_mask(); +files = struct('name', cell(1, numel(filenames)), 'folder', cell(1,... +numel(filenames))); +[files.name] = deal(filenames{:}); +[files.folder] = deal(path); +[minfig, maxfig, meanfig] = get_aggregate_images(files); +meter = get_meter(maxfig, mask); +figure(); +imshow(meanfig); +[meter_file_name, meter_path] = uiputfile([path '/*.mtr'], 'Save you mask as...'); +if (mask_file_name ~= 0) + save_meter([meter_path '/' meter_file_name], meter) +end diff --git a/load_meter.m b/load_meter.m new file mode 100644 index 0000000..2edcc0f --- /dev/null +++ b/load_meter.m @@ -0,0 +1,7 @@ +function meter = load_meter() + path = get_last_path(); + [meter_file path] = uigetfile([path '/*.mtr'],... + 'Select a meter for this batch'); + coefs = readmatrix([path '/' meter_file], 'FileType', 'text'); + meter = @(pix)polyval(coefs, pix); +end diff --git a/save_meter.m b/save_meter.m new file mode 100644 index 0000000..fb649b0 --- /dev/null +++ b/save_meter.m @@ -0,0 +1,5 @@ +function save_meter(meter, fullpath) + info = functions(meter); + coefs = info.workspace{1}.coefs; + writematrix(coefs, fullpath, 'FileType', 'text'); +end