File Exchange

image thumbnail

HoleDetection3D

version 1.0.0 (3.53 KB) by Chong WU
3D holes detection algorithm

2 Downloads

Updated 16 Oct 2018

GitHub view license on GitHub

%% 3D holes detection algorithm
% This work extend the 2D holes detection strategy proposed by Gypaets
% (2016.6.18) to 3D situation. Here, we propose the conectivity length of a
% local manifold to replace the area of polygon to detect the irragular
% triangular mesh patches which should be the holes. It achieves pretty good
% performance in finding holes in 3D situation.
% Example of the conectivity length of a local manifold (p1p2p3p4):
%
% p1 ----- p2
% \ / \
% \ / \
% \ / \
% p3 ------- p4
%
% The connectivity length of above manifold is calculated as follows,
% Conlen(p3) = length(p1-p3) + length(p1-p2) + length(p2-p3) + length(p2-p4)
% + length(p3-p4).
%
%
% Author: Chong WU, Department of Electroic Engineering,
% City University of Hong Kong, Hong Kong SAR, China.
% Released Date: 2018.10.16
% Inspired by the work of Gypaets, 2016.6.18, and URL is
% "https://ww2.mathworks.cn/matlabcentral/fileexchange/57739-gypaets-findtheholes."
%
%
% If you have found any bugs, have any suggestions or problems, please contact me at
% Email: imroxaswc@gmail.com

%% Syntax:
% Input: p is a N-by-3 point clouds data, L is a thredshold (its value
% usually takes 2 to 3), and t is a raw triangular mesh of p which needs to detect
% and remove the holes.
% Output: t is a new triangular mesh after holes detection and elimination.

Cite As

Chong WU (2020). HoleDetection3D (https://github.com/Alicewithrabbit/HoleDetection3D), GitHub. Retrieved .

Comments and Ratings (3)

ASDF SADFAS

rowcount = 200000;
X = rand(rowcount,1)*10;
Y = rand(rowcount,1)*10;
tmp =[X Y];
mytmp = pdist2(tmp,mean(tmp));
index = mytmp>2;
tmp=tmp(index,:);
X = tmp(:,1);
Y = tmp(:,2);
Z = ones(size(X,1),1);
P = [X Y Z];
T = delaunay(P);
newt = HoleDetection3D(P ,2 ,T)
Helloe , When I run the above code,occur error, I want to find the circle's boundary in the point clouds P ,How do I solve this problem?

cjl00123

Prof.hubert

Perfect!

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired by: Gypaets/findTheHoles