3D人脸点云降噪 k近邻 matlab

% ptCloud = pointCloud(1000*rand(100,3,'single'));
%'double';
pointdata=importdata('C:\myfiles\xyz\mdq_face_1.xyz'); %载入点云数据
ptCloud = pointCloud(pointdata);
% figure;
% pcshow(ptCloud); %显示点云数据
[pointdata_rows,pointdata_list] = size(pointdata);
max_dists = 1.5; %设置阈值,这个值需要自行调整
final_face = [];
for ii = 1:pointdata_rows
    point = pointdata(ii,:);
    k = 8;
    [indices,dists] = findNearestNeighbors(ptCloud,point,k);
    mean_dists = mean(dists); %求均值
    ss = std(dists,0,1); %求标准差
    dt = mean_dists+(0.6*ss); %定义距离
    indices_list = []; 
    if dt < max_dists
        final_face = [final_face;point];

    end
end
figure;
pcshow(final_face); %显示降噪后的点云图
%后面的是把降噪后的点云重输出到文件
% output_file = 'C:\myfiles\xyz\mdq_face_2.xyz';
% fid = fopen(output_file,'a');
%[face_row_e,face_list_e] = size(final_face);
% for i = 1:face_row_e
%     for j = 1:face_list_e
%         fprintf(fid,'%f\t',final_face(i,j));
%     end
%     fprintf(fid,'\r\n');
% end
% fclose(fid);

 

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值