• 大小: 1.23MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-05
  • 语言: 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\n‘toc)


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

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


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


%Get  intersection factor
tic
Ifact=IntersectionFactor(tetr2tcctetrr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件      230270  2017-07-14 17:43  MyCrustOpen070909\Falangi.mat
     文件      210927  2017-07-14 17:43  MyCrustOpen070909\Foot.mat
     文件      112918  2017-07-14 17:43  MyCrustOpen070909\HandOliver.mat
     文件      130335  2017-07-14 17:43  MyCrustOpen070909\Hypersheet.mat
     文件      190015  2017-07-14 17:43  MyCrustOpen070909\Mannequin.mat
     文件       29312  2017-07-14 17:43  MyCrustOpen070909\modelforD2_5.mat
     文件      373644  2017-07-14 17:43  MyCrustOpen070909\Monkey2.mat
     文件       22923  2017-07-14 17:43  MyCrustOpen070909\MyCrustOpen.m
     文件        6184  2017-07-14 17:43  MyCrustOpen070909\Nefertiti.mat
     文件        1664  2017-07-14 17:43  MyCrustOpen070909\Pipes.mat
     文件        1599  2017-07-14 17:43  MyCrustOpen070909\TestMyCrustOpen.m
     文件        1314  2017-07-14 17:43  license.txt

评论

共有 条评论