From e3456d4a24612e63c6fe8668f96166924354ec8c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ji=C5=99i=C5=A1t=C4=9B?= Date: Tue, 17 Dec 2024 09:28:51 +0100 Subject: [PATCH] Show centimeter marks over the image This is done to better judge the quality of the fit. --- create_meter.m | 11 ++++++++++- functions/get_meter.m | 4 +++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/create_meter.m b/create_meter.m index daa3fba..a107654 100644 --- a/create_meter.m +++ b/create_meter.m @@ -13,9 +13,18 @@ files = struct('name', cell(1, numel(filenames)), 'folder', cell(1,... [files.name] = deal(filenames{:}); [files.folder] = deal(last_path); [minfig, maxfig, meanfig] = get_aggregate_images(files); -meter = get_meter(maxfig, mask); +[meter, inverse] = get_meter(maxfig, mask, 2); figure(); imshow(meanfig); +pic_size = size(meanfig, 1, 2); +marks_meters = (0:0.01:5); +marks_pixels = inverse(marks_meters); +for i = 1:numel(marks_pixels) + line_x = marks_pixels(i); + if (0 < line_x && line_x < pic_size(2)) + line([line_x line_x], [0 pic_size(1)], 'Color', 'red') + end +end [meter_file_name, meter_path] = uiputfile([path '/*.mtr'], 'Save your meter as...'); if (meter_file_name ~= 0) save_meter([meter_path '/' meter_file_name], meter) diff --git a/functions/get_meter.m b/functions/get_meter.m index e6beebf..2ce75db 100644 --- a/functions/get_meter.m +++ b/functions/get_meter.m @@ -1,4 +1,4 @@ -function meter = get_meter(fig, mask, order) +function [meter, inverse] = get_meter(fig, mask, order) if nargin < 3 order = 1; end @@ -8,6 +8,8 @@ function meter = get_meter(fig, mask, order) mark_indeces = get_mark_indeces(intensity); coefs = polyfit(mark_indeces, 1:-0.1:1-(numel(mark_indeces)-1)*0.1, order); meter = @(pix) polyval(coefs, pix); + coefs_inverse = polyfit(1:-0.1:1-(numel(mark_indeces)-1)*0.1, mark_indeces, order); + inverse = @(meters) polyval(coefs_inverse, meters); %{ meter(mark_indeces) figure -- 2.30.2