fclose(fidin); %关闭
fclose(fidtmp); %关闭
[a,b,c,d,e,t,h,i,j] = textread(tmpfile,'%f %f %f %d %d %d [%d %d] d%d',a1,'headerlines',6);
A = [a,b,c,d,e,t,h,i,j];
%delete(tmpfile);
% index = find((a>0|a<0)&(c>0|c<0)&(b>0|b<0));
% X_3d = a(index);
% Z_3d = c(index);
% Y_3d = b(index);
% pipei = length(Z_3d)/length(c)
X_3d = a;
Z_3d = c;
Y_3d = b;
H_1 = h;
I_1 = i;
Y_3d = -Y_3d;
%对深度及左右上下范围的截取是必须的,范围由测量目标远近情况调整
%因为很远的地方的一个匹配点,即使是误匹配点,也会使整个图像分布太广
%无法看出大部分匹配点的效果
index4 = find(Y_3d<0.32&Y_3d>0);
X_3d = X_3d(index4);
Z_3d = Z_3d(index4);
Y_3d = Y_3d(index4);
H_1 = H_1(index4);
I_1 = I_1(index4);
index5 = find(X_3d<0.5&X_3d>-0.5);
X_3d = X_3d(index5);
Z_3d = Z_3d(index5);
Y_3d = Y_3d(index5);
H_1 = H_1(index5);
I_1 = I_1(index5);
%匹配率计算
pipei1 = (max(H_1) - min(H_1)) * (max(I_1) - min(I_1));
index6 = find((X_3d>0|X_3d<0)&(Z_3d>0|Z_3d<0)&(Y_3d>0|Y_3d<0));
pipei2 = length(index6);
pipei = pipei2/pipei1
index3 = find(Z_3d<1.2&Z_3d>0);
X_3d = X_3d(index3);
Z_3d = Z_3d(index3);
Y_3d = Y_3d(index3);
%以1cm对深度信息进行分层统计
bili(100) = 0;
pingjun(100) = 0;
Z_1 = 0.4;
for i = 1:1:100
index_i1 = find(Z_3d>=Z_1 & Z_3d<(Z_1 + 0.01));
num_1 = length(index_i1);
bili(i) = num_1/length(Z_3d);
Z_jq1 = Z_3d(index_i1);
pingjun(i) = mean(Z_jq1);
Z_1 = Z_1 + 0.01;
end
plot(pingjun,bili*100);
%*********计算平均高度***************
Z_Canopy = mean(Z_3d)
% %画出冠层三维及二维平面图
% figure
% plot3(X_3d,Y_3d,Z_3d,'.','MarkerSize',10);
% figure
% plot(X_3d,Y_3d,'.','MarkerSize',5);
%