离散点云三维重建matlab程序


用离散点云实现三维重建的matlab程序
资源截图
代码片段和文件信息
% MyCrustOpen


% This version has been developped for open surface with no sharp edges. 

% Differently from crust based algorithm does not ensure a tight
%   triangluation and sometimes self-intersecant triangles are generated
%   it is also generally slower. The final surface may need some repair
%   work which this utilitie does not offer.

% But there are two great advantages this one can be applied on any kind
%   of open surface for which the Crust fails supports not regular surface
%   like the Moebius ribbon and most of all the surface can have any kind
%   of holes open feature shouldn‘t create problem.
% You can see   the demo models for examples.

% If any problems occurs in execution or if you found a bug have a
%   suggestion or question just contact me at:

% giaccariluigi@msn.com



% Here is a simple example:

% load Nefertiti.mat%load input points from mat file

% [t]=MyCrustOpen(p);

% figure(1)
%         hold on title(‘Output Triangulation‘‘fontsize‘14) axis equal
%         trisurf(tp(:1)p(:2)p(:3)‘facecolor‘‘c‘‘edgecolor‘‘b‘)

% Input:
%              p is a Nx3 array containing the 3D set of points
% Output:
%              t are points id contained in triangles nx3 array .

% See also qhull voronoin convhulln delaunay delaunay3 tetramesh.

% Author:Giaccari Luigi
% Last Update: 28/01/2009
% Created: 15/4/2008
%
%
% This work is free thanks to our sponsors and users graditude:

-WORDANS: Make you own T-Shirt

-ODICY: affordable luxury made easy

-GIGASIZE: the easiest way to upload and share files

-Advanced M-code

% href=“https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i d=8412682“>-Donate 

% Thank you!
%


function [t]=MyCrustOpen(p)
%error check

if nargin>1
    error(‘The only input must be the Nx3 array of points‘);
end

[mn]=size(p);
if n ~=3
    error(‘Input 3D points must be stored in a 3D array‘);
end 
clear m n


%%   Main

starttime=clock;


%add points to the given ones this is usefull
%to create outside tetraedroms
tic
[pnshield]=AddShield(p);
fprintf(‘Added Shield: %4.4f s
‘toc)


%delaunay 3D triangulation
tic
tetr=delaunayn(p);%creating tedraedron
tetr=int32(tetr);%save memory
fprintf(‘Delaunay Triangulation Time: %4.4f s
‘toc)

%Get connectivity relantionship among tetraedroms
tic
[tetr2tt2tetrt]=Connectivity(tetr);
fprintf(‘Connectivity Time: %4.4f s
‘toc)


%get Circumcircle of tetraedroms
tic
[cctetrrtetr]=CCTetra(ptetr);
fprintf(‘Circumcenters Tetraedroms Time: %4.4f s
‘toc)


%Get  intersection factor
tic
Ifact=IntersectionFactor(tetr2tcctetrr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      230270  2017-07-14 17:43  MyCrustOpen070909Falangi.mat
     文件      210927  2017-07-14 17:43  MyCrustOpen070909Foot.mat
     文件      112918  2017-07-14 17:43  MyCrustOpen070909HandOliver.mat
     文件      130335  2017-07-14 17:43  MyCrustOpen070909Hypersheet.mat
     文件      190015  2017-07-14 17:43  MyCrustOpen070909Mannequin.mat
     文件       29312  2017-07-14 17:43  MyCrustOpen070909modelforD2_5.mat
     文件      373644  2017-07-14 17:43  MyCrustOpen070909Monkey2.mat
     文件       22923  2017-07-14 17:43  MyCrustOpen070909MyCrustOpen.m
     文件        6184  2017-07-14 17:43  MyCrustOpen070909Nefertiti.mat
     文件        1664  2017-07-14 17:43  MyCrustOpen070909Pipes.mat
     文件        1599  2017-07-14 17:43  MyCrustOpen070909TestMyCrustOpen.m
     文件        1314  2017-07-14 17:43  license.txt

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)