Surface fitting for 3D point cloud acquired by photogrammetry

12 views (last 30 days)
We are trying to fit surface on a 3D point cloud.
  • The 3D point cloud is reconstructed from multiple 2D images of a human face (
  • The density of the point cloud is not uniform over its span. For example, at nose and eyes, the density is low but complexity is high. For areas such as the forehead and cheeks, it’s the other way.
  • At this point, we have only XYZ information of this point cloud.
We want to fit a surface on this point cloud. The approach can consider or neglect the fact that underlying object is a human face.
Any suggestion toward surface fitting will be appreciated.

Answers (1)

Joel Handy
Joel Handy on 12 Aug 2019
Take a look at griddata and scatteredInterpolant
griddata Interpolates scattered data - generally to produce gridded data
Vq = griddata(X,Y,V, xq, yq) where xq is a row vector and yq is a
column vector, expands (xq, yq) via [Xq, Yq] = meshgrid(xq,yq).
[Xq, Yq, Vq] = griddata(X,Y,V, xq, yq) returns the grid coordinates
arrays in addition.
scatteredInterpolant performs interpolation on scattered data that
resides in 2-D or 3-D space. A scattered data set is defined by sample
points X and corresponding values v. A scatteredInterpolant object F
represents a surface of the form v = F(X). Interpolated values vq at
query points Xq are obtained by evaluating the interpolant, vq = F(Xq).


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!