-
Notifications
You must be signed in to change notification settings - Fork 1
/
calculateHeight.m
38 lines (38 loc) · 1.23 KB
/
calculateHeight.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function [height] = calculateHeight(pcplanetop, pcplanebottom)
%calculateHeight.m From the top and bottom planes calculates the height
%of the liquid.
%Input:
% pcplanetop: pointcloud of the top plane
% pcplanebottom: pointcloud of the bottom plane
%Output:
% height: distance between the top and bottom plane without outliers.
%
zplanetop = pcplanetop.Location(:,3);
zbottom = (pcplanebottom.Location(:,3));
%Eliminacion de outliers suelo
iqr_zsuelo = iqr(zbottom);
Q1 = quantile(zbottom, 0.75);
Q3 = quantile(zbottom, 0.25);
z_bottom_no_outlier = [];
for i=1 : length(zbottom)
if (zbottom(i) > (Q1 -1.5*iqr_zsuelo) && zbottom(i) < (Q3 + 1.5*iqr_zsuelo))
z_bottom_no_outlier = [z_bottom_no_outlier zbottom(i)];
end
end
%Median z bottom
median_bottom = median(z_bottom_no_outlier);
%Eliminacion de outliers plano superior.
iqr_ztop = iqr(zplanetop);
Q1 = quantile(zplanetop, 0.75);
Q3 = quantile(zplanetop, 0.25);
z_top_no_outlier = [];
for i=1 : length(zplanetop)
if (zplanetop(i) > (Q1 -1.5*iqr_ztop) && zplanetop(i) < (Q3 + 1.5*iqr_ztop))
z_top_no_outlier = [z_top_no_outlier zplanetop(i)];
end
end
%Median z top
median_top = median(z_top_no_outlier);
%Height of the liquid
height = abs(median_bottom - median_top);
end