diff --git a/src/@deproj/add_plot_distorsion_area.m b/src/@deproj/add_plot_distorsion_area.m new file mode 100644 index 0000000000000000000000000000000000000000..66737dc1c57b51385c826abf4861f3b597cdcdcf --- /dev/null +++ b/src/@deproj/add_plot_distorsion_area.m @@ -0,0 +1,12 @@ +function hts = add_plot_distorsion_area( obj, ax ) +%ADD_PLOT_DISTORSION_AREA Add the tissue plot colored with the error on +%cell area caused by the projection. + + epicells = obj.epicells; + areas = vertcat( epicells.area ); + uncorr_areas = vertcat( epicells.uncorrected_area ); + err = 1 - uncorr_areas ./ areas; + + hts = add_plot_variable( obj, 100. * err, ax ); +end + diff --git a/src/@deproj/add_plot_distorsion_perimeter.m b/src/@deproj/add_plot_distorsion_perimeter.m new file mode 100644 index 0000000000000000000000000000000000000000..c46f72d6fc8f193cc897a7e4de09390b09bf1bc8 --- /dev/null +++ b/src/@deproj/add_plot_distorsion_perimeter.m @@ -0,0 +1,12 @@ +function hts = add_plot_distorsion_perimeter( obj, ax ) +%ADD_PLOT_DISTORSION_PERIMETER Add the tissue plot colored with the error on +%cell perimeter caused by the projection. + + epicells = obj.epicells; + perims = vertcat( epicells.perimeter ); + uncorr_perims = vertcat( epicells.uncorrected_perimeter ); + err = 1 - uncorr_perims ./ perims; + + hts = add_plot_variable( obj, 100. * err, ax ); +end + diff --git a/src/@deproj/deproj.m b/src/@deproj/deproj.m index 29c33a1c1f221b37ef1257663d648e1c43b477eb..0bead4f05d7a60bc017facb454448b8524247ac4 100644 --- a/src/@deproj/deproj.m +++ b/src/@deproj/deproj.m @@ -37,6 +37,9 @@ classdef deproj % Figure with the cells area and perimeter. [ hf, ax1, ax2 ] = plot_sizes( obj, scale_bar_length ) + % Figure with the error on uncorrected cells area and perimeter. + [ hf, ax1, ax2 ] = plot_distorsions( obj, scale_bar_length ) + %% Helpers. % They are public in case of. @@ -78,6 +81,12 @@ classdef deproj % Add the tissue plot colored with the cell perimeter. hts = add_plot_perimeter( obj, ax ) + + % Add the tissue plot colored with the error on cell area caused by the projection. + hts = add_plot_distorsion_area( obj, ax ) + + % Add the tissue plot colored with the error on cell perimeter caused by the projection. + hts = add_plot_distorsion_perimeter( obj, ax ) end diff --git a/src/@deproj/plot_distorsions.m b/src/@deproj/plot_distorsions.m new file mode 100644 index 0000000000000000000000000000000000000000..3eaf8d87fe21cb84e54144d659a4ce74f84b6a60 --- /dev/null +++ b/src/@deproj/plot_distorsions.m @@ -0,0 +1,36 @@ +function [ hf, ax1, ax2 ] = plot_distorsions( obj, scale_bar_length ) +%PLOT_DISTORSIONS Figure with the error on uncorrected cells area and perimeter. + + if nargin < 2 + scale_bar_length = 10; + end + + hf = figure( 'Position', [ 1204 20 600 650 ] ); + + ax1 = subplot( 2, 1, 1 ); + hold on + axis equal + add_plot_distorsion_area( obj, ax1 ); + colorbar + + ax2 = subplot( 2, 1, 2 ); + hold on + axis equal + add_plot_distorsion_perimeter( obj, ax2 ); + colorbar + + add_plot_scalebar( obj, scale_bar_length, ax2 ); + + axis( ax1, 'off' ) + axis( ax2, 'off' ) + + title( ax1, 'Error on cell area (%)', ... + 'FontWeight', 'normal', ... + 'Interpreter', 'none' ) + title( ax2, 'Error on cell perimeter (%)', ... + 'FontWeight', 'normal', ... + 'Interpreter', 'none' ) + + linkaxes( [ ax2 ax1 ] ) +end +