资源简介
matlab实现的点云精简算法,亲测可用
代码片段和文件信息
function P = suojian(FileName)
A=read(FileName);
xmin = min(A(:1));
ymin = min(A(:2));
zmin = min(A(:3));
m = size(A1);
zuida = max(A);
zuixiao = min(A);
kuandu = zuida - zuixiao;
dmax = max(kuandu); %点云包围盒最大边长
n = 7; %点云八叉树剖分层数
d0 = dmax/(2^n); %点云精简的指定点距
for t=1:m
i=ceil((A(t1)-xmin)/d0); %取整
j=ceil((A(t2)-ymin)/d0);
k=ceil((A(t3)-zmin)/d0);
Q = char();
for t1=1:n
q=bitget(it1)+bitget(jt1)*2+bitget(kt1)*(2^2); %取二进制的某一位
Q(n-t1+1) = num2str(q);
end
Q=str2double(Q);
A(t4)=Q;
xo = (i-1)*d0+d0/2+xmin;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1306 2016-04-08 10:23 suojian.m
----------- --------- ---------- ----- ----
1306 1
评论
共有 条评论