[Numpy-discussion] OT: A Way to Approximate and Compress a 3D Surface

Bob Lewis bobl at tricity.wsu.edu
Wed Nov 21 14:41:35 EST 2007

On 11/20/07, Anne Archibald posted:

> Subject:
> Re: [Numpy-discussion] OT: A Way to Approximate and Compress a 3D Surface
> From:
> "Anne Archibald" <peridot.faceted at gmail.com>
> Date:
> Tue, 20 Nov 2007 17:13:31 -0500
> To:
> "Discussion of Numerical Python" <numpy-discussion at scipy.org>
> To:
> "Discussion of Numerical Python" <numpy-discussion at scipy.org>
> On 20/11/2007, Geoffrey Zhu <zyzhu2000 at gmail.com> wrote:
>> I have N tabulated data points { (x_i, y_i, z_i) } that describes a 3D
>> surface. The surface is pretty "smooth." However, the number of data
>> points is too large to be stored and manipulated efficiently. To make
>> it easier to deal with, I am looking for an easy method to compress
>> and approximate the data. Maybe the approximation can be described by
>> far fewer number of coefficients.
>> If you can give me some hints about possible numpy or non-numpy
>> solutions or let me know where is better to ask this kind of question,
>> I would really appreciate it.
> This is an important task in computer graphics, in particular, in the
> field of multiresolution modelling. If you look up "surface
> simplification" you'll find many references to articles. I don't know
> of a library offhand that does it, let alone one that is accessible
> from python, but you could try looking at a toolkit that does
> isosurface visualization - these are surfaces that can often be
> simplified enormously. In particular it looks like VTK might be able
> to do what you want.

Anne Archibald is correct that surface simplification may ultimately 
be of great help.  Other place to look besides VTK are GTS, the GNU 
Triangulated Surface library, and CGAL, the Computational Geometry 
Algorithms Library, which has a Python binding.

It occurs to me, though, that we should first verify that you do 
indeed have a surface in the first place.  All you tell us is that you 
have a set of N points in 3-space.  Are they connected?  That is, does 
each point have well-defined neighbors?  If so, do these vertices and 
connections form a mesh that defines a surface?

	- Bob Lewis

More information about the NumPy-Discussion mailing list